Question :
Les applications Java peuvent-elles être exécutées dans des processus distincts en fonction de leurs noms , quel que soit leur emplacement ?
Réponse :
Oui, il est possible d'exécuter des applications Java dans des processus distincts en utilisant leurs noms, plutôt que leurs chemins de fichiers. Ceci peut être réalisé indépendamment de la plate-forme en exploitant les propriétés du système Java.
Pour exécuter une application Java dans un processus distinct, vous pouvez utiliser l'approche suivante :
<code class="java">public class JavaProcess { public static int execute(Class<?> appClass, 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 = appClass.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>
Utilisation :
<code class="java">int exitCode = JavaProcess.execute(MyApplicationClass.class, arguments);</code>
Cette approche s'intègre de manière transparente au mécanisme de chemin de classe, permettant une exécution facile des applications quel que soit leur emplacement physique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!