0

可能重复:
在 java 程序中执行另一个 jar

我正在制作一个从 Java 文档运行并运行 Java 文档的程序。我正在使用 Windows 和

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

对我来说很好,但在 linux、Mac 等上它不会工作,

有人可以帮我修复其他操作系统吗?

注意:我已经检查了操作系统...

4

3 回答 3

0

cmd.exe是 Windows shell 可执行文件,您需要使用 Linux/Mac shell 之一:

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 回答
0

在 Linux/Unix 中,您想使用 sh。这将在大多数系统上链接到 bash、zsh 或 csh。

我 95% 确定 sh 也在 Mac 上,但我需要拔掉我的 Raspberry Pi 并将所有东西放回我的 Mac Mini 以进行验证。

于 2013-01-13T22:56:17.623 回答