Я пытаюсь получить список экземпляров моего кластера, для этого я использую ProcessBuilder выполнить команду:PocessBuilder выполнить GlassFish команды
asadmin list-instances --long=true
, когда я выполнить эту команду из Java в окон это прекрасно работает , но когда я развернуть мое приложение в реальном сервере в Linux я получаю исключение:
Exception = java.io.IOException: Cannot run program "/bin/sh -c 'asadmin list-instances --long=true'": error=2, Aucun fichier ou dossier de ce type
И когда я выполнить эту команду непосредственно на сервере она работает нормально? я действительно не могу понять, что это проблема
Вот мой Java-код:
public String executerCommande() {
String line, line2 = "";
try {
//Windows command
//ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", command);
//I use this with quots and without quotes
//ProcessBuilder builder = new ProcessBuilder("/bin/sh -c asadmin list-instances --long=true");
ProcessBuilder builder = new ProcessBuilder("/bin/sh -c 'asadmin list-instances --long=true'");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
while (true) {
line = r.readLine();
if (line == null) {
break;
}
line2 += r.readLine() + "\n";
}
} catch (Exception e) {
System.out.println("Exception = " + e);
}
return line2;
}
Спасибо.
Я проверить это в окна, и он не работает: 'Exceptionjava.io.IOException: Не удается запустить программу "asadmin": CreateProcess ошибка = 2, Le Fichier spécifié Est introuvable' –
@YoucefLaidani Фрагмент кода предназначен для запуска команды linux –
, это дает мне эту ошибку: «Exceptionjava.io.IOException: не удается запустить программу« asadmin »: error = 2, Aucun fichier ou dossier de ce type' –