0

重複の可能性:
Javaプログラムで別のjarを実行します

Javaドキュメントから実行し、Javaドキュメントを実行するプログラムを作成しています。私は窓を使っています

Process pr = Runtime.getRuntime().exec(
   "cmd /c start cmd.exe /c \"cd %appdata%\\.gknl && java -jar launcher.jar\""
);

私にとっては問題なく動作しますが、Linux、Macなどでは動作しません。

誰かが他のOSシステムを修正するのを手伝ってもらえますか?

注:私はすでにOSのチェックを持っています...

4

3 に答える 3

0

Linux / Unixでは、shを使用します。これは、ほとんどのシステムでbash、zsh、またはcshにリンクされます。

shもMacにあると95%確信していますが、確認のためにRaspberry Piのプラグを抜き、すべてをMacMiniに戻す必要があります。

于 2013-01-13T22:56:17.623 に答える
0

cmd.exeはWindowsシェルの実行可能ファイルであり、Linux/Macシェルのいずれかを使用する必要があります。

ProcessBuilder pb = new ProcessBuilder(
        "sh", "-c",
        "cd $appdata/.gknl && java -jar launcher.jar");
pb.start();

がクラスパス上にある場合launcher.jarは、を使用せずに、呼び出し元のアプリケーションからメインアプリケーションクラスを起動できるはずですProcess/ProcessBuilder

于 2013-01-13T23:04:35.407 に答える
0

Linux:

Process pr = Runtime.getRuntime().exec(new String[]{"csh","-c","cd " + appdata +"\.gknl &&  java -jar launcher.jar");
于 2013-01-13T22:53:09.433 に答える