我实际上有2个问题
我使用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时,我发现主类没有找到异常..
//怪啊?
答案 0 :(得分:1)
我建议你采用两种方式生成JAR文件,使用jar
命令将它们扩展到临时目录,然后在递归模式下使用diff
来比较它们。
然而,我怀疑@Pace已经解决了这个问题;即您在Class-Path
清单条目中使用相对路径,这可能会导致问题。
答案 1 :(得分:0)
java -jar <jar name>
是执行jar的正确方法。
答案 2 :(得分:0)
ant目标是使用classpath属性创建清单。如果查看这些路径,您会发现它们与当前目录相关。当你从命令行执行java -jar时,你在...
G:/dev/myproj
...?目录