如何在另一个Java程序中运行Java程序。
如何在另一个Java程序中运行Java程序。
我想知道如何在另一个Java应用程序(jar2)中运行另一个Java控制台应用程序(jar1),并且我希望能够查看jar1的输出并从jar2中插入自己的输入。\n让我解释得更详细一些。有一个名为Spigot的程序(在www.spigotmc.org中了解更多):Spigot是一个用于运行Minecraft服务器的CLI Java程序,你必须在Windows服务器的批处理文件中使用启动标志来运行它,例如:\njava -Xmx 1024m -Xms 1024Xms spigot.jar1
。现在我想制作一个程序,让我能够在自己的图形设计中运行它,而不是在控制台中运行。\n如何向现有的命令窗口传递参数?
问题的原因是在一个Java程序中运行另一个Java程序。解决方法是使用ProcessBuilder类来运行新的程序,并在运行新程序之前终止已经运行的程序。下面是一个关于如何使用ProcessBuilder的例子:
import java.io.IOException; public class RunJavaProgram { public static void main(String[] args) { // 创建一个ProcessBuilder对象来运行新的Java程序 ProcessBuilder processBuilder = new ProcessBuilder("java", "AnotherJavaProgram"); try { // 终止已经运行的程序 processBuilder.command("pkill", "java").start().waitFor(); // 运行新的Java程序 Process process = processBuilder.start(); process.waitFor(); // 在运行新程序后可以传递命令/参数 processBuilder.command("java", "AnotherJavaProgram", "arg1", "arg2").start().waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } }
请注意,在运行新程序之前,我们使用`pkill`命令终止了所有正在运行的Java程序。这样做是因为无法修改已经运行的程序的参数。然后,我们使用ProcessBuilder来运行新的Java程序。你可以通过在`command`方法中传递其他命令和参数来在运行新程序后执行更多操作。
希望这个例子能帮助你解决在一个Java程序中运行另一个Java程序的问题。