簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM