• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

ProcessBuilder funktioniert nicht

ImNowAPro

Minecrafter
Osterei Experte
Mitglied seit
31 Dezember 2017
Beiträge
7
Alter
14
Minecraft
ImNowAPro
Hallo, ich arbeite derzeit mit ProcessBuildern, sobald ich versuche folgenden Code auszuführen:
Java:
new ProcessBuilder("java " +
                   "-Dfile.encoding=UTF8 -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+AggressiveOpts -XX:+DoEscapeAnalysis -XX:+UseCompressedOops -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=100 -XX:+UseAdaptiveSizePolicy -XX:ParallelGCThreads=2 -XX:UseSSE=3 " +
                   "-Xms" + maxRam + "M -Xmx" + maxRam + "M " +
                   "-Dghoulcloud.name=\""+ name + "\" " +
                   "-Dghoulcloud.master.ip=\"" + GhoulDaemon.getInstance().getConfig().getString("master.ip") + "\" " +
                   "-Dghoulcloud.master.port=" + GhoulDaemon.getInstance().getConfig().getInteger("master.port") + " " +
                   "-jar proxy.jar").directory(directory).start();
bekomme ich diesen Fehler:
Code:
Cannot run program "java -Dfile.encoding=UTF8 -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+AggressiveOpts -XX:+DoEscapeAnalysis -XX:+UseCompressedOops -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=100 -XX:+UseAdaptiveSizePolicy -XX:ParallelGCThreads=2 -XX:UseSSE=3 -Xms1024M -Xmx1024M -Dghoulcloud.name="Test-1" -Dghoulcloud.master.ip="localhost" -Dghoulcloud.master.port=40 -jar proxy.jar" (in directory ".\temp\proxies\Test-1"): CreateProcess error=2, Das System kann die angegebene Datei nicht finden
Kann mir jemand helfen?
 

❤️可愛いちゃん️❤️

Enderdragonjäger
Osterei Experte
Mitglied seit
19 Mai 2014
Beiträge
1.083
Alter
2
Les nochmal die Dokumentation. Du musst den Namen des Binary und die Parameter korrekt übergeben und nicht einfach in einem String.
 

ImNowAPro

Minecrafter
Osterei Experte
Mitglied seit
31 Dezember 2017
Beiträge
7
Alter
14
Minecraft
ImNowAPro
So, der Prozess startet jetzt. Hab es folgendermaßen gelöst:
Java:
new ProcessBuilder("java",
                   "-Dfile.encoding=UTF8", "-XX:+UseG1GC", "-XX:+UnlockExperimentalVMOptions", "-XX:+AggressiveOpts", "-XX:+DoEscapeAnalysis", "-XX:+UseCompressedOops", "-XX:MaxGCPauseMillis=10", "-XX:GCPauseIntervalMillis=100", "-XX:+UseAdaptiveSizePolicy", "-XX:ParallelGCThreads=2", "-XX:UseSSE=3",
                   "-Xms" + maxRam + "M", "-Xmx" + maxRam + "M",                           
                   "-Dghoulcloud.name=\""+ name + "\"",
                   "-Dghoulcloud.master.ip=\"" + GhoulDaemon.getInstance().getConfig().getString("master.ip") + "\"",
                   "-Dghoulcloud.master.port=" + GhoulDaemon.getInstance().getConfig().getInteger("master.port"),
                   "-jar", "proxy.jar").directory(directory).start();
Nun werden aber nicht alle System-Properties gesetzt, hab sie mal aus Testzwecken ausgeben lassen:
Code:
20:58:04 [INFORMATION] java.runtime.name
20:58:04 [INFORMATION] sun.boot.library.path
20:58:04 [INFORMATION] java.vm.version
20:58:04 [INFORMATION] java.vm.vendor
20:58:04 [INFORMATION] java.vendor.url
20:58:04 [INFORMATION] path.separator
20:58:04 [INFORMATION] ghoulcloud.master.ip
20:58:04 [INFORMATION] java.vm.name
20:58:04 [INFORMATION] file.encoding.pkg
20:58:04 [INFORMATION] user.country
20:58:04 [INFORMATION] user.script
20:58:04 [INFORMATION] sun.java.launcher
20:58:04 [INFORMATION] sun.os.patch.level
20:58:04 [INFORMATION] java.vm.specification.name
20:58:04 [INFORMATION] user.dir
20:58:04 [INFORMATION] java.runtime.version
20:58:04 [INFORMATION] java.awt.graphicsenv
20:58:04 [INFORMATION] java.endorsed.dirs
20:58:04 [INFORMATION] os.arch
20:58:04 [INFORMATION] java.io.tmpdir
20:58:04 [INFORMATION] line.separator
 

❤️可愛いちゃん️❤️

Enderdragonjäger
Osterei Experte
Mitglied seit
19 Mai 2014
Beiträge
1.083
Alter
2
Teil das mal auf in Binary und Arguments und nutz dann die Methoden des ProcessBuilder und hau nicht alles in den Konstruktor. Dann kannst du das Argument Array auch zu Debugzwecken mal ausgeben, ich würde wetten da ist irgendwo noch etwas falsch. Ich glaub der ProcessBuilder implementiert auch toString für Debugging
 

ImNowAPro

Minecrafter
Osterei Experte
Mitglied seit
31 Dezember 2017
Beiträge
7
Alter
14
Minecraft
ImNowAPro

ImNowAPro

Minecrafter
Osterei Experte
Mitglied seit
31 Dezember 2017
Beiträge
7
Alter
14
Minecraft
ImNowAPro
Java:
ArrayList<String> command = new ArrayList<>();
command.addAll(Arrays.asList("java",
                             "-Dfile.encoding=UTF8 -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+AggressiveOpts -XX:+DoEscapeAnalysis -XX:+UseCompressedOops -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=100 -XX:+UseAdaptiveSizePolicy -XX:ParallelGCThreads=2 -XX:UseSSE=3 " +
                             "-Xms" + maxRam + "M -Xmx" + maxRam + "M " +
                             "-Dghoulcloud.name=\"" + name + "\" " +
                             "-Dghoulcloud.master.ip=\"" + GhoulDaemon.getInstance().getConfig().getString("master.ip") + "\" " +
                             "-Dghoulcloud.master.port=" + GhoulDaemon.getInstance().getConfig().getInteger("master.port") + " " +
                             "-jar proxy.jar"));
process = new ProcessBuilder().command(command).directory(directory).start();
Ich hoffe mal du meintest das so. Fehlermeldung gibt es nicht.
 

❤️可愛いちゃん️❤️

Enderdragonjäger
Osterei Experte
Mitglied seit
19 Mai 2014
Beiträge
1.083
Alter
2
Na wenn es keine Fehlermeldung gibt und auch kein Fehler auftritt, dann funktioniert es wohl. Was machst du denn danach mit dem Prozess? Ist das der ganze Code? Liest den den Output und Error-Stream des Prozess aus? Ansonsten wird der Prozess vermutlich nicht viel tun können, sobald der Outputbuffer voll ist. Google sollte hier helfen. Ob der Prozess korrekt gestartet ist, kannst du in der Prozesstabelle ja nachgucken.
 

ImNowAPro

Minecrafter
Osterei Experte
Mitglied seit
31 Dezember 2017
Beiträge
7
Alter
14
Minecraft
ImNowAPro
Dass der Prozess nicht korrekt startet erkenne ich daran, dass die "proxy.jar"(Das ist eine frische BungeeCord-Datei) nicht die benötigten Dateien erstellt(z.B. config.yml). Die Streams geben nichts aus.
 
Allgemein
Hilfe Benutzer
    Rabe Rabe: ..
    Oben