Java 프로그래밍 영역에서는 애플리케이션을 별도의 프로세스에서 실행해야 하는 경우가 많습니다. Runtime.getRuntime().exec()를 사용하는 기존 방법은 편리하지만 플랫폼 특정성 문제가 있습니다. 이 기사에서는 이러한 제한 사항을 해결하고 보다 이식성이 뛰어난 접근 방식을 제공하는 솔루션을 제안합니다.
문제 개요:
Java 애플리케이션을 별도의 프로세스 기반에서 실행할 수 있습니까? 기본 플랫폼에 관계없이 위치보다는 이름에 따라 결정됩니까?
제안 솔루션:
이 솔루션은 Java 시스템 속성을 활용하여 실행 구성에 필요한 정보를 도출합니다. 명령. 아래의 플랫폼 독립적 코드 조각은 이를 달성하는 방법을 보여줍니다.
<code class="java">import java.io.IOException; import java.util.List; import java.util.LinkedList; public final class JavaProcess { private JavaProcess() {} public static int exec(Class klass, List<String> args) throws IOException, InterruptedException { String javaHome = System.getProperty("java.home"); String javaBin = javaHome + File.separator + "bin" + File.separator + "java"; String classpath = System.getProperty("java.class.path"); String className = klass.getName(); List<String> command = new LinkedList<>(); command.add(javaBin); command.add("-cp"); command.add(classpath); command.add(className); if (args != null) { command.addAll(args); } ProcessBuilder builder = new ProcessBuilder(command); Process process = builder.inheritIO().start(); process.waitFor(); return process.exitValue(); } }</code>
사용법:
제안된 접근 방식을 사용하여 Java 애플리케이션을 실행하려면 다음 단계를 따르세요.
예:
<code class="java">int status = JavaProcess.exec(MyClass.class, args);</code>
장점:
위 내용은 플랫폼에 관계없이 이름에 따라 별도의 프로세스에서 Java 애플리케이션을 시작할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!