java - java ant build 的问题(未正确设置类路径)

标签 java ant

这个构建文件有什么问题。它基本上包括两个jar文件AbsoluteLayout.jar和swing-layout-1.0.3.jar

<?xml version="1.0"?>
  <project>
  <property name="srcDir" location="src"/>
  <property name="buildDir" location="build"/>
  <property name="distDir" location="dist"/>
  <property name="library" value="lib/"/>


  <path id="classpath">
    <fileset dir="${library}">
      <!--<include name="**/*.jar"/>-->
      <include name="*.jar"/>
    </fileset>
  </path>

  <property name="myclasspath" refid="classpath"/>
    <!-- Emit the property to the ant console -->
      <echo message="Classpath = ${myclasspath}"/>

  <target name="init">
    <mkdir dir="${buildDir}"/>
    <mkdir dir="${distDir}"/>
  </target>

  <target name="compile" depends="init">
    <javac srcdir="${srcDir}" destdir="${buildDir}" classpathref="classpath"/>
  </target>

  <target name="dist" depends="compile">
    <jar destfile="${distDir}/pro.jar" basedir="${buildDir}">
      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Main-Class" value="Main.Class"/>
      </manifest>
    </jar>
    <!--<jar destfile="${distDir}/package-src.jar" basedir="${srcDir}"/>-->

  </target>

  <target name="clean">
    <delete dir="${buildDir}"/>
    <delete dir="${distDir}"/>
  </target>
</project>

它说构建成功。当我在终端中运行 ant 文件时。但当 我运行 jar 文件,它给出以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group
Caused by: java.lang.ClassNotFoundException: org.jdesktop.layout.GroupLayout$Group
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

为什么它不包括类路径中的两个文件?

最佳答案

But when I run the jar file it is giving following error:

Exception in thread "main" java.lang.NoClassDefFoundError

这是一个运行时错误。运行时,jdesktop jar 在 jar 文件的类路径中不可用。

尝试

java -cp .;path_jdesktop.jar; yourclass.jar

您可以添加 classpath in the manifest file jar 文件的还有:

Class-Path: jar1-name jar2-name directory-name/jar3-name

所以类似:

 <manifest>
    <attribute name="Built-By" value="${user.name}"/>
    <attribute name="Main-Class" value="Main.Class"/>
    <attribute name="Class-Path" value="lib/jdesktop.jar"/>
  </manifest>

运行 jar 文件时,请确保该 lib 目录中有一个 lib 目录和 jdesktop.jar

关于java - java ant build 的问题(未正确设置类路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6996393/

相关文章:

java - 用java在远程机器上打开ServerSocket?

java - 如何为 Netbeans 编写提示?

java - 列表接口(interface)排序方法和流接口(interface)排序方法有什么区别?

java - 混淆时遇到麻烦

apache-flex - 使用 Flex compc ant 任务将目录/通配符的内容编译到 SWC

gradle - 使用 Gradle (build.gradle) 运行 ANT build.xml 文件

java - 导入 com.sun.javadoc,与 Eclipse 和 Ant 一起使用

java - 查找 JVM 崩溃的原因

java - 不确定如何找到这个对象实例

java - 如何将 GCJ 与 Ant 一起使用?