Команда «cat ~/desktop/b.mpg ~/desktop/b2.mpg> ~ desktop/intermediate_all.mpg», похоже, работает только с использованием Java Runtime (как показано в примере ниже);
Почему одна и та же команда работает в скрипте bash, но не в Java Runtime напрямую?
public class Test {
public static void main(final String[] args) {
String[] cmd = {"cat ~/desktop/b.mpg ~/desktop/b2.mpg > ~desktop/intermediate_all.mpg"};
try { Runtime.getRuntime().exec(cmd); }
catch (IOException e) { e.printStackTrace();}
}
}
Однако, если положить в .sh файл, как во втором примере он работает просто отлично ....
public class Test {
public static void main(final String[] args) {
try { Runtime.getRuntime().exec("https://stackoverflow.com/users/nn/desktop/configure.sh"); }
catch (IOException e) { e.printStackTrace();}
}
}
Может кто-нибудь, пожалуйста, скажите мне, что фундаментальный процесс теряется при переходе от сценария bash к прямому Java Runtime? FYI, я использую OSX, уже пробовал использовать абсолютные пути к файлу, и знать о Process Builder (который имеет тот же эффект) предпочтительнее использовать Java Runtim - как уже было сказано тысячу раз на этом форуме, поэтому позволяет избежать побоев мертвая лошадь на этом.
Благодаря
'~ desktop' - это не то же самое, что' ~/desktop'. – Amadan