我正在尝试通过Web上的HelloWorld示例来演示如何在Eclipse中使用ANT创建构建文件。这是来自Web示例的项目构建文件
<?xml version="1.0" encoding="UTF-8"?>
<project name="HW.makejar" default="makejar" basedir=".">
<target name="makejar" description="Create a jar for the HW project">
<jar jarfile="HelloWorld.jar" includes="*.class" basedir="."/>
</target>
</project>
但是当我运行生成的jar时,我收到此错误消息无法从HelloWorld.jar加载Main-Class清单属性。
然后我尝试了这样:
<?xml version="1.0" encoding="UTF-8"?>
<project name="HW.makejar" default="makejar" basedir=".">
<target name="makejar" description="Create a jar for the HW project">
<jar jarfile="HelloWorld.jar" includes="*.class" basedir=".">
<manifest>
<attribute name="Main-Class" value="ami.HelloWorld" />
</manifest>
</jar>
</target>
</project>
当我重新生成生成的jar时,我收到以下错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: ami/HelloWorld
我做错了什么。顺便说一句,当我手动编译源代码并在Eclipse中指定Main.class时,生成的jar运行完美。
答案 0 :(得分:2)
你的jar文件是否包含任何类文件?如果没有,请尝试:
<jar jarfile="HelloWorld.jar" includes="**/*.class" basedir=".">
答案 1 :(得分:0)
你的基础是否正确?如果jar tvf HelloWorld.jar
是HelloWorld.class
文件夹下列出的ami
类?如果它直接列在根目录下,则需要从其父文件夹添加它,而不是从ami
文件夹添加。