3

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

但是当我导出它并运行它时,它只是返回一个错误,说找不到主类,应该没有问题,因为我正确设置了启动配置,并且由于某种原因,这只发生在我用 java 编程时1.7,当我在 1.6 中执行此操作时,它可以完美编译并运行。即使我导出它。

我如何导出

这就是我导出它的方式

我只是通过打开 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

我得到的错误信息

错误信息

我的包裹(如果有帮助的话)

包

4

3 回答 3

2

在控制台 ( ) 上运行您的 JARjava -jar yourjar.jar并发布完整的堆栈跟踪。也发布java -version和的输出javac -J-version

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

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

于 2012-06-15T15:58:07.967 回答
1

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

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

可以解决您的问题,因为您在其中的主类是 Eclipse 的内部类。

于 2013-01-08T14:30:42.130 回答
0

您的主要方法签名不正确。请验证它是否如下所示:

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

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

于 2012-06-15T15:50:40.877 回答