我有一个问题。 我有一个 jar 文件,它应该执行启动另一个 jar 文件的 Linux 命令。
但如果我运行我的 jar,它总是告诉我:
java.io.IOException: Cannot run program "bash java -jar -Xmx2048M -Xms2G -XX:MaxPermSize=128M spigot.jar nogui" (in directory "/home/RusticGamesNetwork/MinecraftServers/MainLobby"): error=2, File or Directory not found
at java.lang.ProcessBuilder.start(Unknown Source)
at de.Cammeritz.RootServer.Servers.lobby(Servers.java:13)
at de.Cammeritz.RootServer.Main.main(Main.java:11)
Caused by: java.io.IOException: error=2, File or Directory not found
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 3 more
这是我的 2 个类:
package de.Cammeritz.RootServer;
public class Main {
public static void main(String args[]) {
Servers s = new Servers();
System.out.println("Server werden gestartet!");
s.lobby();
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("In 10 sec. schließt sich das Programm selber!");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Das Programm wird geschlossen!");
System.exit(0);
return;
}
}
还有这个:
package de.Cammeritz.RootServer;
import java.io.File;
import java.io.IOException;
public class Servers {
public void lobby() {
ProcessBuilder pb = new ProcessBuilder("bash java -jar -Xmx2048M -Xms2G -XX:MaxPermSize=128M spigot.jar nogui");
pb.directory(new File("/home/RusticGamesNetwork/MinecraftServers/MainLobby/"));
try {
pb.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
谢谢大家的帮助:)
最佳答案
问题不在于运行 java 时。甚至 bash 也没有被执行。我认为您根本不需要从 bash 运行 java。
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "spigot.jar", "-Xmx2048M", "-Xms2G, "-XX:MaxPermSize=128M", "nogui");
发生的事情是 java 正在尝试运行名为“bash java -jar -Xmx2048M -Xms2G -XX:MaxPermSize=128M spigot.jar nogui”的可执行文件而不是“bash”的参数。
参见:http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html
关于java - linux运行其他jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25703593/