我正在制作一个从java文档运行的程序,并运行一个Java文档。 我正在使用Windows和
Process pr = Runtime.getRuntime().exec(
"cmd /c start cmd.exe /c \"cd %appdata%\\.gknl && java -jar launcher.jar\""
);
对我很好,但在Linux,Mac等它不会工作,
有人可以帮我修复其他操作系统吗?
注意:我已经检查了操作系统......
答案 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
。