Java任务的ant文件类路径帮助
我有下面的Ant构建文件,并试图使用目标“run”来执行程序
<property name="springjar" location="E:/Tools/spring-30/dist/" />
<property name="logjar" location="E:/Tools/commons-logging-1.1.1/" />
<patternset id="jar.files"><include name="**/*.jar"/></patternset>
<path id="springlearn.classpath">
<fileset dir="${springjar}"><patternset refid="jar.files"/></fileset>
<fileset dir="${logjar}"><patternset refid="jar.files"/></fileset>
</path>
<target name="run" depends="dist" description="Execute the Java Program">
<java dir ="." fork="true" jar="dist\app.jar" classpathref ="springlearn.classpath">
</java>
</target>
使用相同的classpathref,我能够成功编译&;创建jar,但是当使用目标运行时,我得到以下错误
java.lang.NoClassDefFoundError: org/springframework/core/io/Resource
Caused by: java.lang.ClassNotFoundException: org.springframework.core.io.Resource
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
线程“main”中出现异常
非常感谢您的帮助。谢谢
# 1 楼答案
这是一个通用的Ant构建。对我来说效果很好的xml。看看它是否也能帮助您:
# 2 楼答案
从^{} task docs 开始:
因此,您设置的类路径根本没有被查看
您可以将
dist/app.jar
添加到类路径并直接调用主类:如果要调用jar,则需要在构建它时在清单中设置一个类路径条目。看看pathconvert任务,它可能很有用