【发布时间】:2011-11-21 17:42:03
【问题描述】:
我想从与我的应用程序 jar 所在位置不同的位置创建一个进程,但我不确定这是否可行,或者如果可行,该怎么做。
例如,这是我正在开发的 Minecraft 包装器
Runtime rt = Runtime.getRuntime();
String proc = "java -Xms512M -Xmx1024M -jar minecraft_server.jar nogui";
Process pr = rt.exec(proc);
这将从当前位置执行 minecraft jar(这会使 minecraft 地图和服务器配置文件出现在当前文件夹中,这不是我想要的)。
我可以通过将命令“cd”放入 bat 文件或 bash 脚本中来实现,如下所示:
cd minecraft/
java -Xms512M -Xmx1024M -jar ../minecraft_server.jar nogui
那么我的代码就变成了
Runtime rt = Runtime.getRuntime();
String proc = "mc.bat";
Process pr = rt.exec(proc);
这将执行我想要的子目录“minecraft/”中的 minecraft.jar。但是,如果可能的话,我非常希望在 Java 应用程序中执行此操作,而不使用批处理文件/bash 脚本。
【问题讨论】:
-
你可以在this question看到我的回答