0

Runtime.execを使用してJavaコードからクラスファイルを実行しようとしていますが、Linuxで新しいプロセスを起動できません。同じことがWindowsでも機能しています。

ボタンをクリックするだけで、GUI(Launch.jarという名前のjarファイルから実行しています)からプロセスを起動するか、起動します。

そこで、次のコードを使用しました。

String curpath=System.getProperty("user.dir");
 Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c", "java -classpath"+curpath+File.separator+" Launch.jar LaunchNewProcess" });
4

3 に答える 3

1

後にスペースを残す必要があると思います-classpath

Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c",
"java -classpath "+curpath+File.separator+" Launch.jar LaunchNewProcess" });

更新:これを試してください:

Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c",
"java -jar "+curpath+File.separator+"Launch.jar" });
于 2012-11-07T08:24:14.930 に答える
1

-classpath の後にスペースを入れ、「 Launch.jar」のスペースも削除します

 try{

     Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c", "java -classpath "+curpath+File.separator+"Launch.jar LaunchNewProcess" });

}catch(Exception e){
   e.printStackTrace();
}
于 2012-11-07T08:24:31.747 に答える
0

私見 Runtime.exec の使用をやめ、 ProcessBuilderの使用を開始することをお勧めします

そこには多くの例/チュートリアルがあります。

于 2012-11-07T08:28:21.677 に答える