From a8b09e2195671f378656e70565762de007054065 Mon Sep 17 00:00:00 2001 From: Akira Yamazaki Date: Sat, 24 Sep 2022 16:57:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=A7=E8=A1=8C=20PreLaunc?= =?UTF-8?q?hCommand=20=E6=97=B6=E4=BC=9A=E8=A2=AB=E9=98=BB=E5=A1=9E?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20(#1737)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jackhuang/hmcl/launch/DefaultLauncher.java | 8 ++------ .../org/jackhuang/hmcl/util/platform/SystemUtils.java | 6 +++++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java index a7eeafb51..53409aa8c 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java @@ -27,11 +27,7 @@ import org.jackhuang.hmcl.util.gson.UUIDTypeAdapter; import org.jackhuang.hmcl.util.io.FileUtils; import org.jackhuang.hmcl.util.io.IOUtils; import org.jackhuang.hmcl.util.io.Unzipper; -import org.jackhuang.hmcl.util.platform.CommandBuilder; -import org.jackhuang.hmcl.util.platform.JavaVersion; -import org.jackhuang.hmcl.util.platform.ManagedProcess; -import org.jackhuang.hmcl.util.platform.OperatingSystem; -import org.jackhuang.hmcl.util.platform.Bits; +import org.jackhuang.hmcl.util.platform.*; import org.jackhuang.hmcl.util.versioning.VersionNumber; import java.io.*; @@ -459,7 +455,7 @@ public class DefaultLauncher extends Launcher { if (StringUtils.isNotBlank(options.getPreLaunchCommand())) { ProcessBuilder builder = new ProcessBuilder(StringUtils.tokenize(options.getPreLaunchCommand())).directory(runDirectory); builder.environment().putAll(getEnvVars()); - builder.start().waitFor(); + SystemUtils.callExternalProcess(builder); } Process process; diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/SystemUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/SystemUtils.java index b9f356f3d..69bae15dc 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/SystemUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/SystemUtils.java @@ -31,7 +31,11 @@ public final class SystemUtils { } public static int callExternalProcess(List command) throws IOException, InterruptedException { - ManagedProcess managedProcess = new ManagedProcess(new ProcessBuilder(command)); + return callExternalProcess(new ProcessBuilder(command)); + } + + public static int callExternalProcess(ProcessBuilder processBuilder) throws IOException, InterruptedException { + ManagedProcess managedProcess = new ManagedProcess(processBuilder); managedProcess.pumpInputStream(SystemUtils::onLogLine); managedProcess.pumpErrorStream(SystemUtils::onLogLine); return managedProcess.getProcess().waitFor();