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

无需Eclipse运行Maven项目遇错:javac提示org.json包不存在

解决Maven项目用javac运行时找不到org.json包的问题

嘿,这问题我熟!你直接敲javac main.java报错,核心原因是Maven管理的依赖jar包不在javac默认的类路径里——javac只会盯着当前目录下的类文件,而org.json这类依赖是存在你本地Maven仓库里的,它根本不知道去哪找。

下面给你几个靠谱的解决办法,按从省心到灵活的顺序来:

方法一:直接用Maven运行程序(最推荐)

既然是Maven项目,何必自己折腾依赖路径?让Maven帮你搞定一切:

  1. 先确认你的pom.xml里已经正确引入org.json依赖(如果还没加,赶紧补上):
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20240303</version> <!-- 可以换成你需要的版本 -->
    </dependency>
    
  2. 切换到项目根目录(就是放pom.xml的那个文件夹),执行命令直接运行主类:
    mvn exec:java -Dexec.mainClass="com.main"
    
    注意把com.main换成你实际的主类全限定名——因为你的项目结构是src/com/main.java,所以类的包名必须是com,主类如果叫main,全限定名就是com.main。

方法二:用Maven生成类路径,再手动用javac编译运行

如果非要自己用javac操作,那得明确告诉它去哪找依赖jar包:

  1. 先让Maven帮你生成所有依赖的类路径清单:
    mvn dependency:build-classpath -Dmdep.outputFile=classpath.txt
    
    执行完后,项目根目录会多出一个classpath.txt,里面列了所有依赖jar包的完整路径。
  2. 编译你的Java文件,指定类路径:
    javac -cp "$(cat classpath.txt)" src/com/main.java src/com/otherClass.java
    
    要是文件多,也可以用通配符src/com/*.java一次性编译所有类。
  3. 编译完成后,运行主类:
    java -cp "$(cat classpath.txt):." com.main
    
    这里的:.是把当前目录(也就是编译后生成的.class文件所在目录)加入类路径。

额外提醒:检查类的包声明

看你的项目结构是src/com/main.java,那main.java的开头必须有包声明:

package com;

public class main {
    public static void main(String[] args) {
        // 你的业务代码
    }
}

要是没加这个package com;,不仅编译容易出问题,运行时也会找不到类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:03:09