gpt4 book ai didi

java - 在另一个进程(VM)中启动Java main

转载 作者:行者123 更新时间:2023-12-02 00:50:04 25 4
gpt4 key购买 nike

我有一个服务器客户端项目,出于测试目的,我想在一个全新的进程中启动服务器。问题是,我的项目中只有一个 main() 方法,没有 jar。所以我的猜测是这样的

Runtime.getRuntime().exec("javac MyServer.java");
Runtime.getRuntime().exec("java class MyServer");

但我真的不确定它,而且我也不完全喜欢为每个测试用例启动 javac 的需要。

我应该如何进行?

编辑

我想在@Before方法中启动进程并在@After中销毁它。它必须自动运行,因此手动打开服务器不是一个选择。我正在寻找一种消除服务器类编译的方法。但现在我想没有其他办法了。

最佳答案

如果这是出于测试目的,只需从命令行启动其他进程或使用 Eclipse 来处理它。在 Eclipse 中,同一个项目可以有多个 main() 入口点。当您希望运行应用程序时,您可以创建一个运行/调试配置,说明您希望调用哪个入口点。因此,您可以为客户端定义一个,为服务器定义一个,然后单击按钮即可运行它们。

扩展:

先决条件 - 在执行任何操作之前,首先将您的项目导入 Eclipse。

  1. 从 Java 角度运行 Eclipse(Java 项目通常是这种情况)
  2. 您将看到两个工具栏按钮,分别标记为“调试为...”和“运行为...”。从现在开始我将描述“调试”按钮,但同样的原则也适用于“运行为”。
  3. “调试为...”按钮旁边是一个下拉按钮。单击它,然后从下拉列表中选择调试配置...
  4. 将打开一个配置对话框。在对话框中双击“Java 应用程序”。 Eclipse 将创建一个新的调试配置来调试 Java 应用程序。
  5. 使用右侧的字段选择您正在调试的 Eclipse 项目、主类(即具有您希望调用的静态主类的类)以及您想要设置的任何其他参数。您可以为您的配置指定一个有意义的名称并应用更改。
  6. 创建两种配置,一种用于客户端,一种用于服务器,例如“调试客户端”和“调试服务器”
  7. 退出对话框
  8. 现在“调试为...”下拉列表包含两个针对新配置的操作。您可以单击它们以在 Debug模式下启动应用程序。您将观察到每个实例都在单独的 java.exe 进程中运行。

Eclipse 还有一个调试视角,您可以在其中停止/暂停正在运行的进程、设置断点等等。它甚至可以同时调试多个事物,因此您可以在调试中启动客户端和服务器,并在调用的任一侧设置断点。

关于java - 在另一个进程(VM)中启动Java main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3606900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com