gpt4 book ai didi

java - Ant 找不到主类错误

转载 作者:行者123 更新时间:2023-12-01 17:31:32 25 4
gpt4 key购买 nike

这是我第一次使用 Ant,当它尝试运行时,我遇到了 java.lang.NoClassDefFoundError 异常。这是我的 Ant 构建脚本,

<project name="LearnKirtan" basedir="." default="main">

<property name="src.dir" value="src" />
<property name="lib.dir" value="lib" />

<property name="build.dir" value="build" />
<property name="classes.dir" value="${build.dir}/classes" />
<property name="jar.dir" value="${build.dir}/jar" />

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

<property name="main-class" value="gsingh.learnkirtan.Main" />

<target name="clean">
<delete dir="${build.dir}" />
</target>

<target name="compile">
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false" classpathref="classpath" />
</target>

<target name="jar" depends="compile">
<mkdir dir="${jar.dir}" />
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}" />
</manifest>
</jar>
</target>

<target name="run" depends="jar">
<java classname="${main-class}" fork="true" />
<classpath>
<path refid="classpath" />
<path location="${jar.dir}/${ant.project.name}.jar" />
</classpath>
</target>

<target name="clean-build" depends="clean,jar" />

<target name="main" depends="clean,run" />

</project>

构建没有错误。运行目标给出了异常。我检查了 jar 文件中生成的 list ,它看起来像这样,

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_30-b12 (Sun Microsystems Inc.)
Main-Class: gsingh.learnkirtan.Main

最佳答案

你的运行目标看起来有点奇怪,<java classname="${main-class}" fork="true" />是自动关闭的,所以 classpath元素从未被使用过

<target name="run" depends="jar">
<java classname="${main-class}" fork="true" >
<classpath>
<path refid="classpath" />
<path location="${jar.dir}/${ant.project.name}.jar" />
</classpath>
</java>
</target>

可能适合你。

关于java - Ant 找不到主类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com