我正在使用Netbeans创建Java桌面应用程序。 Netbeans内部一切都很好。但是当我尝试运行在我的项目工作区的dist
文件夹中创建的.jar
文件时,出现以下错误:can not find or load main class
。无法找到或加载主类
我最近升级到Java 1.7.0_03。你认为这可能是原因吗?新的JDK位于glassfish
之内,我不明白为什么?!
顺便说一句,当我在Mac OS X中安装Java 1.6时构建相同的应用程序时,我没有任何问题。
我正在使用Netbeans创建Java桌面应用程序。 Netbeans内部一切都很好。但是当我尝试运行在我的项目工作区的dist
文件夹中创建的.jar
文件时,出现以下错误:can not find or load main class
。无法找到或加载主类
我最近升级到Java 1.7.0_03。你认为这可能是原因吗?新的JDK位于glassfish
之内,我不明白为什么?!
顺便说一句,当我在Mac OS X中安装Java 1.6时构建相同的应用程序时,我没有任何问题。
如果通过双击运行jar文件,那么错误是manifest.mf文件(通常在META-INF文件夹中)需要定义主类。
看看http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html
部分
Main-Class: com.package.MYMainClass
否则,如果你是从命令提示符下运行,那么
java -jar my.jar com.package.MYMainClass
您也可以在Netbeans中选择主类。 当您第一次尝试运行应用程序,NetBeans将问哪些类应该是主类,但是您也可以手动选择:
Right click on your project -> Properties -> Run
在Main Class
点击Browse...
并选择包含类在启动应用程序时应该运行的主要方法。
最后,再次构建您的项目,并且manifest.mf
中的Main-Class
属性应该设置正确。然后你的应用程序应该开始按需要,双击罐子或java -jar myfile.jar
。
thnx.i不知道如何编辑清单,但我设法从命令提示符运行,如你所说。我现在应该做些什么来使它能够通过双击运行? – MoienGK
并且meta-inf文件夹中没有清单文件!该清单位于项目 – MoienGK
的根文件夹中。它必须在META-INF中具有manifest.mf。如果netbeans正在创建META-INF文件夹,请打开您的jar文件作为zip并检查。也可以编辑,只需在manifest.mf文件的末尾添加Main-Class:com.package.MYMainClass – bhatanant2