В чем разница между запуском программы с помощью java и ее запуском с помощью командной строки? В первом случае он не работает, но во втором случае он работает нормально.Запуск внешней программы
Java:
try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("../../../my/prog \"//10.124.12.15/C:/output/*\" ../../../input/345 -N -A");
DataInputStream bis = new DataInputStream(proc.getInputStream());
int _byte;
while ((_byte = bis.read()) != -1)
System.out.print((char)_byte);
proc.waitFor();
} catch (IOException ex) {
ex.printStackTrace();
} catch (InterruptedException ex) {
ex.printStackTrace();
}
И команда:
../../../my/prog "//10.124.12.15/C:/output/*" ../../../input/345 -N -A
Может быть, путь неправильно. Почему вы не вызываете программу с использованием абсолютных путей? – Frankie
Помимо рекомендаций, которые уже были предложены, обязательно выполняйте все рекомендации [Когда Runtime.exec() не будет] (http://www.javaworld.com/javaworld/jw-12-2000/jw-1229- traps.html). –
Это проблема с разрешениями? Вы запускаете программу в другом пользовательском контексте, например в службе? –