2013-01-19 140 views
0

可能重复:
Why does Ant say “NoClassDefFound” when my JAR is on the classpath?创建可运行的Jar文件。 (java.lang.NoClassDefFoundError)

目前,我有我在我的Ant编译3个java文件。它使用的是Java GUI,因此它依赖于2个.jar文件。使用javac和jar编译在Ant中正常工作。但是,一旦我双击jar文件来运行它,它就不会运行。当我尝试在Ant中使用Java运行它时,会发生以下错误。

[java] Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group 
[java]  at tictactoe.General.main(Unknown Source) 
[java] Caused by: java.lang.ClassNotFoundException: org.jdesktop.layout.GroupLayout$Group 

等...

这是我的Ant文件` 井字 - CIS3760A1

<path id="classpath"> 
     <fileset dir="lib" includes="*.jar" /> 
    </path> 

<target name="init"> 
    <mkdir dir="build" /> 
    <mkdir dir="dist" /> 
</target> 

<target name="compile" depends="init"> 
    <javac srcdir="src" destdir="build" classpathref="classpath" includeantruntime="false" /> 
</target> 

<target name="jar" depends="compile"> 
    <jar destfile="dist/CIS3760A1.jar" basedir="build"> 
     <manifest> 
      <attribute name="Main-Class" value="tictactoe.General"/> 
      <attribute name="Class-Path" value="lib/org-jdesktop-layout.jar lib/swing-layout-1.0.4.jar"/> 
     </manifest> 
    </jar> 
</target> 

<target name="clean"> 
    <delete dir="build" /> 
    <delete dir="dist" /> 
</target> 

<target name="run" depends="jar"> 
    <java jar="dist/CIS3760A1.jar" fork="true" classpathref="classpath" /> 
</target> 

`

+0

在“运行”目标中指定类路径参数没有意义。当在命令行中指定-jar时,-classpath选项将被忽略。请参阅工具文档。 – EJP

回答

2

是JAR文件的目录与一个需要2个罐子的lib子目录?从脚本的外观来看,它正在构建到一个dist目录中,它看起来并不像它具有相对于主jar所需的lib目录。

相关问题