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

求助:Linux下如何运行带Maven依赖的IntelliJ编写Java程序

嘿,我太懂你这种刚从IDE切换到命令行的困惑了!毕竟IntelliJ已经默默帮我们把依赖管理、路径配置这些杂活全搞定了,自己敲命令的时候一下子就懵了对吧?别担心,既然你的项目是用Maven管理的,咱们直接用Maven的命令来处理,比手动折腾classpath简单一万倍~

方法一:用Maven直接编译并运行

首先得确认你能在命令行里用Maven:

  • 打开命令行,输入mvn -v,如果能看到Maven的版本信息,说明已经配置好了;如果没反应,要么是没装Maven,要么是环境变量没配——其实IntelliJ自带了Maven,你可以用项目根目录下的mvnw(Windows是mvnw.cmd)来代替mvn命令,不用额外装。

接下来按步骤来:

  • 先切换到你的项目根目录(就是有pom.xml文件的那个文件夹)
  • 执行编译命令:mvn compile,这一步Maven会自动下载所有需要的依赖,还会把你的Java代码编译成class文件
  • 然后运行主类:mvn exec:java -Dexec.mainClass="你的主类全限定名",比如你的主类是com.example.MyMain,那命令就是mvn exec:java -Dexec.mainClass="com.example.MyMain"
方法二:打包成可执行Jar包,随时随地运行

如果想把程序做成一个单独的文件,方便拷贝或者以后直接运行,就打包成包含所有依赖的可执行Jar:

  1. 先修改项目里的pom.xml,添加一个插件配置,让Maven打包的时候把所有依赖都塞进去:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <!-- 这里替换成你的主类全限定名 -->
                        <mainClass>com.example.MyMain</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
  1. 回到命令行,执行mvn package,等命令跑完,去项目的target文件夹里找——你会看到一个名字类似你的项目名-版本号-jar-with-dependencies.jar的文件
  2. 最后运行这个Jar包:java -jar target/你的Jar包全名.jar
为啥直接用javac会报错?

给你简单解释下:javac编译的时候,不知道你的Maven依赖存在哪里(这些依赖都在本地的Maven仓库里,比如~/.m2/repository或者C:\Users\你的用户名\.m2\repository),要手动把所有依赖的Jar都加到classpath里,不仅麻烦还容易漏,所以用Maven来帮你处理依赖路径才是最省心的方式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:30:53