2010-09-23 87 views
1

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

归档文件中包含的所有的.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" 
/> 
+0

jar -tvf jarfile.name看起来如何? – Jayan 2010-09-24 04:53:17

回答

1

JAR整个过程都是正确的。被抛出这个错误,因为我试图创建一个JAR后运行使用以下命令将JAR:

java MainClass 

我现在意识到我需要使用以下命令明确目标的JAR:

java -jar MainClass.jar 
0

看在生成JAR文件,以确保这两个包都从根本上正确的路径。清单中的Class-Path语句可能与包含.class文件的文件夹结构不匹配。

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

+0

它们确实位于正确的目录结构中。 – XBigTK13X 2010-09-23 17:43:33

+1

正确加载哪个软件包,main或secondpackage?我想知道你的类路径的分隔符是否需要分号: 2010-09-23 18:08:06

+0

更改空间分隔符到分号不能解决问题。以下是试图运行JAR时生成的错误消息: 引起:java.lang.ClassNotFoundException:MainClass.jar – XBigTK13X 2010-09-23 23:11:13