我实际上有两个问题
我使用 eclipse -> 导出项目为我的简单桌面(GUI)程序生成 jar 文件
它生成一个 jar 文件和一个 ant 脚本。
第一个问题:
双击时生成的 jar 工作正常。
当我使用生成的ant脚本生成jar时
就我自己来说,这是行不通的。
像这样的目标可能会出现什么问题(假设满足所有依赖项)
<target name="create_run_jar">
<jar destfile="G:/dev/myproj/myproj.jar">
<manifest>
<attribute name="Main-Class" value="view.myproj"/>
<attribute name="Class-Path" value=". myproj_lib/grouplayout.jar"/>
</manifest>
<fileset dir="G:/dev/myproj/bin"/>
</jar>
<delete dir="G:/dev/myproj/myproj_lib"/>
<mkdir dir="G:/dev/myproj/myproj_lib"/>
<copy file="G:/dev/.metadata/.plugins/org.dyno.visual.swing/layoutext/grouplayout.jar" todir="G:/dev/myproj/myproj"/>
</target>
//nevemind
//第二个问题:
//当我双击自动生成的 jar 文件时,程序启动并正常工作。
//当我从命令行执行 java myjar 时,我得到主类未找到异常..
//很奇怪吧?
最佳答案
我建议您将两种方式生成的JAR文件,使用jar
命令将其展开到临时目录中,然后以递归方式使用diff
进行比较他们。
但是,我怀疑 @Pace 已经指出了这个问题;也就是说,您在 Class-Path
list 条目中使用相对路径,这可能会导致问题。
关于java - JAR 类路径和外部 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5957167/