Eine Java-Anwendung separat ausführen
Man möchte möglicherweise eine Java-Anwendung unabhängig von ihrem Speicherort unter Verwendung ihres Namens auf eine Art und Weise ausführen, die nicht der Fall ist abhängig vom Betriebssystem.
Implementierung
Das Java-System Eigenschaften stellen Daten bereit, die die Entwicklung des Pfads zum Java-Befehl und des Klassenpfads auf plattformunabhängige Weise ermöglichen.
Der folgende Code demonstriert diese Implementierung:
<code class="java">public final class 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); command.addAll(args); ProcessBuilder builder = new ProcessBuilder(command); Process process = builder.inheritIO().start(); process.waitFor(); return process.exitValue(); } }</code>
Sie können dies ausführen Methode wie folgt:
<code class="java">int status = JavaProcess.exec(MyClass.class, args);</code>
Beachten Sie, dass diese Methode die tatsächliche Klasse anstelle ihres Namens als Zeichenfolge akzeptiert, da diese im Klassenpfad enthalten sein muss.
Das obige ist der detaillierte Inhalt vonWie führe ich eine Java-Anwendung unabhängig von ihrem Standort aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!