Ant构建项目时报org.json类不存在错误,org.json单独测试可正常使用
问题根因
org.json依赖仅在编译环节配置了classpath,打包生成jar和后续运行jar的两个环节均未引入该依赖,因此编译可正常通过,但运行时会抛出类不存在异常。
修复方案
两种常用可行方案,任选其一即可:
方案1:生成带依赖的可执行jar(推荐)
修改build.xml的dist目标,将org.json的类一并打入最终生成的jar包中,修改后配置如下:
<target name="dist" depends="compile"> <mkdir dir="${dist.dir}"/> <jar jarfile="${dist.dir}/${project.name}.jar" basedir="${build.dir}" manifest="${src.dir}/Manifest.mf"> <!-- 引入org.json依赖的所有类 --> <zipgroupfileset dir="C:/JSON/" includes="json-20210307.jar" /> </jar> </target>
修改完成后重新执行ant clean build即可正常运行。
方案2:运行时单独指定依赖路径
如果不需要把依赖打入jar包,可修改运行目标的配置,明确将org.json的路径加入运行时classpath:
<target name="build" depends="dist"> <java classname="替换为你的主类全限定名" fork="true"> <classpath> <pathelement path="${dist.dir}/${project.name}.jar"/> <pathelement path="C:/JSON/json-20210307.jar"/> </classpath> </java> </target>
注意将配置中的替换为你的主类全限定名修改为实际main方法所在类的完整路径。
补充说明
当前配置中定义的run.classpath未被任何环节引用,后续可统一用其管理依赖路径,避免多处重复编写绝对路径。
内容的提问来源于stack exchange,提问作者I try so hard but I cry harder
相关产品推荐
相关产品推荐

