Linux запустить другие банки

1

У меня проблема. У меня есть файл 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();
    }

}
}

Спасибо, ребята, за помощь :)

  • 1
    Укажите ваше .jar имя файла сразу после -jar !
  • 0
    java -jar spigot.jar -Xmx2048M ... Как это? :)
Теги:
processbuilder
execute

1 ответ

1
Лучший ответ

Проблема заключается не в запуске java. Даже bash не выполняется. Я не думаю, что вам нужно запустить java из bash вообще.

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" instad из "bash" с параметрами.

См.: http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

  • 0
    Спасибо за помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню