如何在含两个Main类的Spring Boot Maven项目中从终端运行指定类
运行Spring Boot项目中手动指定的Main类
Got it, let's break down how to run your Process.java class manually from the terminal. Since your project is Maven-based, you've got a couple of solid, reliable options here:
方法一:使用Maven Exec插件(推荐)
这是最省心的方式,Maven会自动帮你处理所有依赖的类路径,不用手动配置:
- 先切换到项目根目录(pom.xml所在的位置):
cd ~/projects/coolproject - 执行以下命令,指定你要运行的类的全限定名(包名+类名):
mvn exec:java -Dexec.mainClass="com.company.Process"- 如果你的
Process类需要接收命令行参数,可以追加参数配置:mvn exec:java -Dexec.mainClass="com.company.Process" -Dexec.args="arg1 arg2"
- 如果你的
方法二:直接使用Java命令(手动管理类路径)
如果你不想依赖Maven插件,可以直接编译后用java命令运行,但需要自己处理类路径:
- 先编译整个项目,生成class文件:
编译后的class文件会存放在cd ~/projects/coolproject mvn compiletarget/classes目录下。 - 让Maven帮你生成项目所有依赖的类路径列表:
这会在项目根目录生成一个mvn dependency:build-classpath -Dmdep.outputFile=classpath.txtclasspath.txt文件,包含所有依赖jar包的路径。 - 执行
java命令,把编译后的类目录和依赖类路径都加入classpath:- Linux/macOS:
java -cp "target/classes:$(cat classpath.txt)" com.company.Process - Windows(注意路径分隔符是分号
;):java -cp "target/classes;$(type classpath.txt)" com.company.Process
- Linux/macOS:
小提示
如果你的Process类不需要加载Spring Boot的应用上下文,完全可以独立运行,不会和你在pom.xml中指定的<start-class>冲突。如果它确实需要Spring环境,你可以在运行时额外指定spring.main.application-class参数,但根据你的描述,应该不需要这一步~
内容的提问来源于stack exchange,提问作者Héctor Valls
相关产品推荐
相关产品推荐

