シェルからは機能するがJavaからは機能しない単純なコマンドを実行したいと思います。これは私が実行したいコマンドであり、正常に機能します。
soffice -headless "-accept=socket,host=localhost,port=8100;urp;"
これは、このコマンドを実行しようとしてJavaから実行しているコードです。
String[] commands = new String[] {"soffice","-headless","\"-accept=socket,host=localhost,port=8100;urp;\""};
Process process = Runtime.getRuntime().exec(commands)
int code = process.waitFor();
if(code == 0)
System.out.println("Commands executed successfully");
このプログラムを実行すると、「コマンドが正常に実行されました」というメッセージが表示されます。ただし、プログラムの終了時にプロセスは実行されていません。プログラムの実行後にJVMがプログラムを強制終了する可能性はありますか?
なぜこれが機能しないのですか?