如何在IDE外的Linux环境中运行Maven项目的指定Java主类
1. 本地项目打包
首先在项目根目录(包含pom.xml的目录)执行打包命令,跳过测试环节加快打包速度:mvn clean package -DskipTests
建议提前在pom.xml中配置assembly或shade插件打包包含所有依赖的fat jar,避免Linux运行时出现类找不到的报错。如果未配置插件,打包后需要把项目所有依赖的jar包统一放到Linux的同一个目录下。
打包完成后,生成的jar包默认存放在项目根目录的target文件夹下。
2. 传输jar包到Linux环境
使用scp或其他文件传输工具将jar包上传到目标Linux机器的指定目录,scp命令示例:scp ./target/你的项目jar包名.jar 登录用户名@Linux机器IP:/存放jar包的目标路径
如果是未包含依赖的普通jar包,需要同时把所有依赖的jar包一起上传。
3. Linux环境执行指定主类
执行命令前确认Linux环境安装的JDK版本和你本地编译项目的JDK版本兼容。
如果你上传的是包含所有依赖的fat jar
执行以下命令即可运行指定主类,主类需要写全限定名(即包名+类名,可在IDEA的Main1类顶部package行查看包名):java -cp 你的jar包名.jar 主类全限定名
示例:假设Main1的包名为com.test.exec,命令为:java -cp test-project-1.0.jar com.test.exec.Main1
如果你上传的是未包含依赖的普通jar
将所有依赖jar包放到同一个目录(比如命名为lib),执行命令时把依赖路径加入classpath:java -cp "你的jar包名.jar:lib/*" 主类全限定名
如果需要后台运行并保存日志,可以使用如下命令:java -cp test-project-1.0.jar com.test.exec.Main1 > main1-run.log 2>&1 &
内容的提问来源于stack exchange,提问作者anonymous

