You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux命令行运行Maven管理的Java项目(非Jar方式)求助

不用生成Jar包在Linux命令行运行Maven Java项目的方法

嘿,我明白你的困扰——转成Maven项目后Eclipse跑没问题,但Linux命令行不想打jar包就不知道怎么运行了对吧?我给你几个实用的方法,亲测有效:

方法1:用Maven Exec插件直接运行(最推荐)

这是Maven官方支持的直接执行Java类的方式,不用折腾类路径,非常省心:

  • 首先检查你的pom.xml,如果还没指定主类,可以加上这段配置(替换成你的主类全限定名,比如com.example.HelloWorld):
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <mainClass>你的主类完整路径</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>
  • 然后在Linux命令行进入项目根目录(就是pom.xml所在的文件夹),直接执行:
mvn exec:java

如果不想修改pom.xml,也可以直接在命令行临时指定主类:

mvn exec:java -Dexec.mainClass="com.example.HelloWorld"

执行完就能看到你的Hello world !输出啦。

方法2:手动编译+运行(适合想了解底层逻辑的情况)

如果不想用插件,也可以手动处理编译和类路径:

  1. 先让Maven帮你编译项目,生成class文件:
mvn compile

编译好的class文件会存放在target/classes目录下。
2. 生成依赖的类路径(因为Maven项目的依赖都存在本地仓库里,手动加太麻烦):

mvn dependency:build-classpath -Dmdep.outputFile=classpath.txt

这个命令会把所有依赖jar包的路径写入classpath.txt文件。
3. 最后执行Java命令,把编译后的类目录和依赖路径都加入类路径:

java -cp "target/classes:$(cat classpath.txt)" com.example.HelloWorld

注意:Linux系统用冒号:分隔类路径,Windows才用分号;,别搞混了

容易踩坑的地方要注意

  • 确认你的主类里有public static void main(String[] args)方法,而且全限定名(包名+类名)没写错
  • 如果项目有第三方依赖,一定要把依赖jar包加入类路径,不然会报ClassNotFoundException
  • 所有命令都要在项目根目录执行,或者把路径写完整

内容的提问来源于stack exchange,提问作者zakaria35

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:12:22