mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-16 00:26:07 +09:00
printout child proc's out and err to console
This commit is contained in:
@@ -1,12 +1,9 @@
|
|||||||
package net.torvald.terrarum;
|
package net.torvald.terrarum;
|
||||||
|
|
||||||
import com.badlogic.gdx.utils.JsonValue;
|
import com.badlogic.gdx.utils.JsonValue;
|
||||||
import net.torvald.terrarum.serialise.WriteConfig;
|
|
||||||
import net.torvald.terrarum.utils.JsonFetcher;
|
import net.torvald.terrarum.utils.JsonFetcher;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintStream;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -89,18 +86,41 @@ public class Principii {
|
|||||||
try {
|
try {
|
||||||
Process proc = Runtime.getRuntime().exec("java"+extracmd+" -Xms1G -Xmx"+xmx+"G -cp ./out/TerrarumBuild.jar net.torvald.terrarum.App");
|
Process proc = Runtime.getRuntime().exec("java"+extracmd+" -Xms1G -Xmx"+xmx+"G -cp ./out/TerrarumBuild.jar net.torvald.terrarum.App");
|
||||||
|
|
||||||
// TODO redirect proc's PrintStream to System.out
|
Thread tp = new Thread(() -> {
|
||||||
int size = 0;
|
String p = null;
|
||||||
byte[] buffer = new byte[1024];
|
while (proc.isAlive()) {
|
||||||
while ((size = proc.getInputStream().read(buffer)) != -1) {
|
try {
|
||||||
System.out.write(buffer, 0, size);
|
p = proc.inputReader().readLine();
|
||||||
}
|
}
|
||||||
|
catch (IOException ignored) {
|
||||||
|
}
|
||||||
|
if (p != null) System.out.println(p);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Thread te = new Thread(() -> {
|
||||||
|
String e = null;
|
||||||
|
while (proc.isAlive()) {
|
||||||
|
try {
|
||||||
|
e = proc.errorReader().readLine();
|
||||||
|
}
|
||||||
|
catch (IOException ignored) {
|
||||||
|
}
|
||||||
|
if (e != null) System.err.println(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
tp.start();
|
||||||
|
te.start();
|
||||||
|
|
||||||
|
System.exit(proc.waitFor());
|
||||||
}
|
}
|
||||||
catch (IOException e) {
|
catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
catch (InterruptedException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user