java.lang.NoClassDefFoundError 可是包已导入,而且报错的类已存在,是一个Interface类

_小罗 2016-01-21 11:12:24
之前做安卓,Java后台工程师离职了接手后台部分(剧情较复杂,就不纠结了)
用ant编译、生成、执行一个jar,报错如下:
run:
[java] java.lang.NoClassDefFoundError: com/vv/gps/vo/VO
[java] at java.lang.Class.getDeclaredMethods0(Native Method)
[java] at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
[java] at java.lang.Class.getMethod0(Class.java:2774)
[java] at java.lang.Class.getMethod(Class.java:1663)
[java] at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
[java] at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
[java] Caused by: java.lang.ClassNotFoundException: com.vv.gps.vo.VO
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
[java] ... 6 more
[java] Exception in thread "main"
但是,VO这个类在jar包里是存在的

而且我直接在代码上右键run,也不会报错的
Java还有很多不懂,请教一下
...全文
879 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
h13135654983 2021-06-26
  • 打赏
  • 举报
回复

dd

_追逐梦想_ 2016-01-22
  • 打赏
  • 举报
回复
估计jar包冲突,找找有没有类似的
_追逐梦想_ 2016-01-22
  • 打赏
  • 举报
回复
引用 5 楼 a510835147 的回复:
估计jar包冲突,找找有没有类似的
看错了。。 这个自己写的。
Intboy 2016-01-21
  • 打赏
  • 举报
回复
jar包打进去你要的了么?
  • 打赏
  • 举报
回复
你这个jar是怎么执行的? 放到项目的lib下面?
_小罗 2016-01-21
  • 打赏
  • 举报
回复
引用 2 楼 fengspg 的回复:
jar包打进去你要的了么?
有打包进去,我放的图片就是为了说明这个问题
_小罗 2016-01-21
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
你这个jar是怎么执行的? 放到项目的lib下面?
我是在build.xml里执行的时候报错,但是直接在那个代码那里右键 run as java application就没事 ---------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <project name="vv-server" default="init" basedir="."> <description>use jar test</description> <property name="src" value="src" /> <property name="classes" value="bin/classes" /> <property name="jar.name" value="vv007Cmd" /> <property name="output.dir" value="E:\vv-jar\" /> <tstamp /> <property name="jarfilename" value="${output.dir}${jar.name}-${DSTAMP}${TSTAMP}.jar" /> <pathconvert property="lib" pathsep=" "> <mapper> <chainedmapper> <flattenmapper /> <globmapper from="*" to="lib/*" /> </chainedmapper> </mapper> <fileset dir="lib"> <include name="*.jar" /> </fileset> </pathconvert> <property name="libs" value="${lib}" /> <echo>libs ${libs}</echo> <target name="init"> <delete dir="${classes}" /> <mkdir dir="${classes}" /> </target> <target name="compile" depends="init" description="comile target"> <javac srcdir="${src}" destdir="${classes}" includeantruntime="true"> <classpath> <fileset dir="lib"> <include name="*.jar" /> </fileset> </classpath> </javac> </target> <target name="jar" depends="compile" description="make jar file"> <jar jarfile="${jarfilename}" basedir="${classes}"> <manifest> <attribute name="Main-Class" value="com.vv.server.test.luoyc.Vv007CmdTest" /> <attribute name="Class-Path" value="${libs}"> </attribute> </manifest> </jar> </target> <target name="run" depends="jar"> <java jar="${jarfilename}" fork="true"> </java> </target> <target name="clean"> <delete dir="${classes}" /> <delete dir="." includes="${ant.project.name}*.jar" /> </target> </project>

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧