2014-09-06 120 views
1

我遇到了问题。 我有一个jar文件,应该执行一个启动另一个jar文件的Linux命令。Linux运行其他罐子

但它总是告诉我,如果我跑我的罐子:

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(); 
    } 

} 
} 

谢谢你们寻求帮助:)

+1

在'-jar'之后立即指定您的.jar文件名! – FoggyDay 2014-09-06 18:47:41

+0

java -jar spigot.jar -Xmx2048M ...喜欢这个? :) – 2014-09-06 18:49:08

回答

1

p当java运行时不会出现问题。即使bash没有被执行。我不认为你需要从bash运行java。

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "spigot.jar", "-Xmx2048M", "-Xms2G,  "-XX:MaxPermSize=128M", "nogui"); 

正在发生的事情是,Java是试图运行可执行文件名为 “庆典Java的罐子-Xmx2048M -Xms2G -XX:MaxPermSize参数= 128M spigot.jar NOGUI”, “庆典” 与参数的instad。

请参阅:http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

+0

谢谢你的帮助! – 2014-09-06 18:59:27