一些jar文件通过双击运行,有些不需要
我开始使用SWT(eclipse.org/swt)。将我的项目导出到可运行的jar只能通过命令行运行,即java -jar filename.jar
。但是,当我双击它时不起作用。但在同一时间,我可以双击其他罐子,并且它们运行得非常好!
这个罐子有什么问题?一些jar文件通过双击运行,有些不需要
由于.jar文件包含许多.class文件,因此java如何知道要运行哪个类?
答案是你需要一个名为META-INF/MANIFEST.MF的清单文件。把它放进你的.jar文件的根目录,并添加一行:
Main-Class: com.something.MyApp
你只需要一条线。还有其他一些东西可以放入,例如应用程序版本,如果需要的话还有任何特殊的类路径等。检查你的.jar文件,看看这个文件是否存在 - 如果没有,你必须创建它。
您还可以使用Eclipse向导来帮助您创建MANIFEST.MF文件。只需右键点击您的项目,选择导出| Jar文件,并按照向导页面。使用“下一步”而不是“完成”,因为选择主要类的选项位于其中一个非必需页面上。
你说,你的MANIFEST.MF有一个像
Rsrc-Main-Class: Main
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
线这意味着,当你执行的.jar。它会在Eclipse提供的类JarRsrcLoader中查找main()方法。当Eclipse运行时运行.jar时,该类可能在您的路径中。但是如果你停止Eclipse,我认为它不会起作用。
现在产生我是这样的: '清单-版本:1.0 密封:真 主类:不my.p.Main' 它通过Java的罐子工作,但再次通过双击... 当我双击它说_could找不到主要类:my.p.Main_ ** my.p **只是主要的包 – 2012-07-24 07:40:56
看看你的.jar文件创建(使用“jar tvf
有Main.class里面/ my/p/ 我没有看到其他的jar,但是有一些swt dll和SWT类文件 – 2012-07-24 19:30:52
哪个操作系统? – Mark 2012-07-23 22:03:45
64位Windows 7 – 2012-07-23 22:04:18
同样的问题在这里 – 2012-08-07 14:13:43