问题:
Java应用程序可以根据名称在单独的进程中执行吗,独立于它们的位置?
答案:
是的,可以使用它们的名称而不是文件路径在单独的进程中执行 Java 应用程序。这可以通过利用 Java 系统属性以独立于平台的方式实现。
要在单独的进程中运行 Java 应用程序,您可以使用以下方法:
<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>
用法:
<code class="java">int exitCode = JavaProcess.execute(MyApplicationClass.class, arguments);</code>
这种方法与类路径机制无缝集成,允许轻松执行应用程序,无论其物理位置如何。
以上是Java应用程序可以根据名称单独运行吗?的详细内容。更多信息请关注PHP中文网其他相关文章!