为什么我的程序不能正确找到主类?

时间:2012-06-15 15:16:45

标签: java eclipse ide

我正在java中创建一个程序,它只是一个基于J的基本gui程序。当我使用播放按钮在eclipse中编译它时,它运行完美,没有任何错误或错误。

但是当我导出它并运行它时,它只返回一个错误,说主要类无法找到,应该没有问题,因为我已正确设置启动配置,由于某种原因,这只发生在im在java 1.7中编程,当我在1.6中编写时,它编译并运行完美。即使我出口它。

我如何导出

This is how i export it

我只是通过打开jar文件

来运行它

在我的MANIFEST.MF文件中:

Manifest-Version: 1.0
Rsrc-Class-Path: ./
Class-Path: .
Rsrc-Main-Class: net.undeadminecraft.wgh.main.Main
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

我收到错误消息

the error message

我的包裹(如果有帮助)

packages

3 个答案:

答案 0 :(得分:2)

在控制台(java -jar yourjar.jar)上运行JAR并发布完整的堆栈跟踪。同时发布java -versionjavac -J-version的输出。

我的猜测是你的默认Java是Java6,如果用Java7构建,你使用的是新的Java7类文件格式,或者你的主类包含对Java6中不存在的类的引用(在验证的地方)不能推迟)。

编辑:使用Process Explorer或其他显示exe路径且可以查找窗口进程的任务管理器,并显示哪个javaw.exe确切地显示了该错误消息。然后尝试同一目录中的java.exe以重现错误消息。或卸载所有JRE(JDK可能会保留)但只有一个,因此很清楚哪个正在运行。

答案 1 :(得分:1)

我建议将主类设置为MANIFEST.MF中的“Main-Class”:

Manifest-Version: 1.0
Rsrc-Class-Path: ./
Class-Path: .
Main-Class: net.undeadminecraft.wgh.main.Main

可以解决您的问题,因为您在那里的主要类是Eclipse的内部类。

答案 2 :(得分:0)

您的主要方法签名不正确。请确认它如下所示:

public static void main(String args[]){ 
} 

你可能会遗漏一些东西。否则请告诉我们您的方法声明。