Java 애플리케이션을 별도의 프로세스에서 실행, 단순화
Java 애플리케이션을 위치에 관계없이 별도의 프로세스에서 실행하는 기능 는 플랫폼 간 호환성을 위한 중요한 기능입니다. 그러나 Runtime.getRuntime().exec(COMMAND)을 사용하는 기존 접근 방식은 플랫폼별로 다를 수 있습니다.
이 문제를 해결하려면 다음과 같은 향상된 솔루션을 고려하십시오.
public final class JavaProcess { private JavaProcess() {} public static int exec(Class klass, List<String> args) throws IOException, InterruptedException { // Determine platform-independent paths 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(); // Create process builder ProcessBuilder builder = new ProcessBuilder(); // Set command and arguments builder.command().addAll(Arrays.asList(javaBin, "-cp", classpath, className)); builder.command().addAll(args); // Execute and return exit status Process process = builder.inheritIO().start(); process.waitFor(); return process.exitValue(); } }
사용법:
int status = JavaProcess.exec(MyClass.class, args);
이 접근 방식은 Java 시스템 속성을 활용하여 필요한 경로를 얻고, 플랫폼 독립적인 프로세스 생성을 위해 ProcessBuilder를 활용합니다. 정규화된 클래스 이름을 허용하고 원하는 플랫폼 독립적 동작을 제공합니다.
위 내용은 플랫폼 간 호환성을 위해 별도의 프로세스에서 Java 애플리케이션을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!