Ant从多个包构建jar

时间:2010-09-23 17:30:38

标签: java ant

我正在尝试基于两个单独的Java包创建一个JAR。我可以在Eclipse中编译和运行,但无法从命令行获取代码。我已经正确配置了Ant和JDK,因为我有一个几乎正常工作的Ant构建脚本。唯一的问题是,当我尝试执行它时,生成的JAR会抛出 ClassNotFoundException

存档包含正确目录层次结构中两个包中的所有 .class 文件。无论如何,JAR将抛出上述异常。

我们的想法是从包含两个软件包的顶级目录运行此脚本。

以下是我的构建脚本中的相关行:

<manifest file="MANIFEST.MF">
    <attribute name="Built-By" value="XBigTK13X"/>
    <attribute name="Main-Class" value="com.main.MainClass"/>
    <attribute name="Class-Path" value="./com/main/ ./secondpackage/shapes/" />
</manifest>
<jar destfile="App.jar"
    basedir="./bin"
    includes="**/*.class"
    manifest="MANIFEST.MF"
    excludes="App.jar"
/>

2 个答案:

答案 0 :(得分:1)

JAR一直都是正确的。抛出此错误是因为我在创建JAR后尝试使用以下命令运行JAR:

java MainClass

我现在意识到我需要使用以下命令显式地定位JAR:

java -jar MainClass.jar

答案 1 :(得分:0)

查看生成的JAR文件,以确保两个包具有来自根的正确路径。清单中的Class-Path语句可能与包含.class文件的文件夹的结构不匹配。

通过使用zip util打开JAR来验证它。