• 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
Registriert
31 Dezember 2017
Beiträge
22
Diamanten
308
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?
 

ImNowAPro

Minecrafter
Registriert
31 Dezember 2017
Beiträge
22
Diamanten
308
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
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
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
Registriert
31 Dezember 2017
Beiträge
22
Diamanten
308
Minecraft
ImNowAPro

ImNowAPro

Minecrafter
Registriert
31 Dezember 2017
Beiträge
22
Diamanten
308
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.
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
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
Registriert
31 Dezember 2017
Beiträge
22
Diamanten
308
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.
 
Oben