如何在 IDE 之外运行/执行 java 代码(maven 项目)

Posted

技术标签:

【中文标题】如何在 IDE 之外运行/执行 java 代码(maven 项目)【英文标题】:how to run/execute a java code(maven project) outside the IDE 【发布时间】:2021-09-08 06:36:44 【问题描述】:

我是编程新手,有一个带有 java 代码的 maven 项目可以进行某些测试,它通过 Jenkins 管道定期运行,它在环境(Linux 机器)上运行测试。 现在我正在努力并且不知道从哪里开始是如何手动测试此代码,知道它具有不同的 Mains(即 Main1 , Main2 , Main3 )并且我想运行某个 Main 而不是全部,例如只有 Main1 测试具体的东西。 ps:我在Intellij中有代码,但是我想在intellij之外运行,我想在我正在测试的环境(linux机器)上运行。

【问题讨论】:

【参考方案1】:

首先你必须在你的项目目录中使用这个命令build maven 项目:

mvn package

成功构建后,您将看到在目标文件夹中创建了一个与您的包名称和版本相同的.jar 文件。

最后你必须运行项目。

要运行项目,请使用以下命令:

java -cp target/jarfileName.jar path_of_the_project_startup

完成。

【讨论】:

太好了,如果我想调试代码?例如,现在我收到一个错误,但我正在运行的代码是在一台 linux 机器上而不是在 intellij 上,所以这可能吗?或者我应该每次进行更改然后构建然后在 linux 机器上运行 jar 文件?这将是一项艰苦的工作,而且不方便。【参考方案2】:

首先,您需要构建您的 Maven 项目。导航到项目文件夹(您必须在那里有项目根 pom.xml)打开一个终端并构建它:

mvn clean package

根据您的项目结构,此命令的成功运行将导致您的模块在不同级别的多个目标文件夹以及其中的 .jar 文件。导航到您的入口点(主)所在的模块的目标文件夹并检查 jar 文件名。为简单起见,我们将其称为 jarname.jar。

如果您在同一个 jarname.jar 中有多个入口点,您可以像这样运行它们:

java -cp jarname.jar Main1
java -cp jarname.jar Main2
java -cp jarname.jar Main3

如果您想从终端运行并仍然从 IntelliJ 进行调试,请使用以下命令运行应用程序:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

然后在 IntelliJ 中的同一端口 (5005) 上创建一个“远程 JVM 调试”配置,添加一些断点和“调试”。

作为替代方案,您可以从 IntelliJ 创建 Run Config 'Java Scratch' 来运行/调试您的应用程序。

【讨论】:

所以终端上的最终命令将如下所示:java -cp jarname.jar Main1 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ?并在 Intellij 上创建 Remote JVM Debug 并设置端口 5005? 是的。如果您需要调试应用程序的一些初始化代码,您可以使用 suspend=y(虚拟机将在有机会加载主类之前被挂起,并且附加的调试器将恢复 VM 的执行)。跨度>

以上是关于如何在 IDE 之外运行/执行 java 代码(maven 项目)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IDE 之外使用 python 代码

如何将 java 源代码保存在 xml 文件中,并在 IDE 中编辑/编译它?

在 Eclipse IDE 之外启动运行配置

Java开发的必备技术点

如何在 Python 中检查代码的运行时间。 PyCharm 是我的 IDE [重复]

07 JVM 是如何实现反射的