-4
我的罐子在編譯後無法運行。我用這個Ant構建腳本.jar無法運行,也無法找到外部罐子
<project name="HelloWorld" basedir="." default="jar">
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="libsSrc" value="libs"/>
<property name="main-class" value="nat.ise.ApplicationStarter"/>
<path id="classpath">
<fileset dir="${libsSrc}" includes="*.jar"/>
</path>
<pathconvert property="mf.classpath" pathsep=" ">
<path refid="classpath"/>
<mapper>
<chainedmapper>
<flattenmapper/>
<globmapper from="*.jar" to="lib/*.jar"/>
</chainedmapper>
</mapper>
</pathconvert>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="." classpathref="classpath" destdir="${classes.dir}"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar">
<zipgroupfileset dir="${libsSrc}" includes="*.jar"/>
<fileset dir="${classes.dir}" includes="**/*.class"/>
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
<attribute name="Class-Path" value="${mf.classpath}"/>
</manifest>
</jar>
</target>
</project>
清單是正確的,我從命令提示符我得到的錯誤
java.io.FileNotFoundException
的文件時,它運行時管理得到一些庫包括在內,但指的是一個JOGL庫gluegen-rt-natives-windowsamd64.jar
最初我使用32位庫從eclipse運行項目,現在我已將64位庫包含在文件夾庫中,但它仍然告訴我它找不到它們。
其實我現在可以看到,當我打開罐子,所有.dll文件的兩個副本(我只能假設這是一個從32位和一個從JOGL的64位版本)
是否沒有辦法讓程序只使用32位庫運行?我想減少我必須分配的數量。
如果從命令行運行它,java -jar是否會輸出任何錯誤? –
kevingreen
2012-03-30 19:03:00
這可能是'NoClassDefFound'異常的經典案例...做一下kevingreen說的,看看你得到了什麼錯誤。 – 2012-03-30 19:22:56
我編輯了這個問題來回答你。 – Neilos 2012-03-31 12:33:31