java JAR类路径和外部JAR
我实际上有两个问题
我使用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时,我会得到main class not found exception
//奇怪吧
# 1 楼答案
ant目标正在创建带有类路径属性的清单。如果查看这些路径,您会注意到它们是相对于当前目录的。当您从命令行执行java-jar时,您是否处于
。。。目录
# 2 楼答案
我建议您使用这两种方法生成的JAR文件,使用
jar
命令将它们扩展到临时目录,然后在递归模式下使用diff
对它们进行比较然而,我怀疑@Pace已经指出了这个问题;i、 e.您正在
Class-Path
清单条目中使用相对路径,这可能会导致问题# 3 楼答案
java -jar <jar name>
是执行jar的正确方式