![](/img/trans.png)
[英]How to process the different location of multiple files in parellel using spark with java?
[英]Java process execution possible from different location?
我想從我的應用程序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腳本。
假設您可以使用Java 1.5或更高版本,建議您使用ProcessBuilder
而不是Runtime
。 這將使您輕松地為該進程設置工作目錄。
final Process pr = new ProcessBuilder(
"java",
"-Xms512M",
"-Xmx1024M",
"-jar",
"minecraft_server.jar",
"nogui")
.directory(new File("minecraft")) //Set the working directory to ./minecraft/
.start();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.