其他OS系统中的CMD命令

时间:2013-01-13 22:48:59

标签: java linux windows command cmd

  

可能重复:
  Execute another jar in a java program

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

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

对我很好,但在Linux,Mac等它不会工作,

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

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

3 个答案:

答案 0 :(得分:0)

Linux的:

Process pr = Runtime.getRuntime().exec(new String[]{"csh","-c","cd " + appdata +"\.gknl &&  java -jar launcher.jar");

答案 1 :(得分:0)

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

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

答案 2 :(得分: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