为什么我的程序不能正确地找到主类?
我正在制作一个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
错误消息我得到
我的包(如果它帮助)
在控制台(java -jar yourjar.jar
)上运行您的JAR并发布完整的堆栈跟踪。也发布java -version
和javac -J-version
的输出。我的猜测是你的默认Java是Java6,如果你使用Java7构建,你使用的是新的Java7类文件格式,或者你的主类包含对Java6中不存在的类的引用(在一个地方验证不能推迟)。
编辑:使用Process Explorer或显示EXE路径和一个窗口,可以发现过程,并显示其javaw.exe
显示你到底该错误消息的另一个任务管理器。然后尝试在同一目录中的java.exe
以重现错误消息。或者卸载你的所有JRE(JDK可能会停留),但是一个,所以很清楚哪一个正在运行。
你的主要方法签名是不正确的。请确认它是否如下所示:
public static void main(String args[]){
}
您可能会错过某些东西。否则,请给我们您的方法声明。
public static void main(String args []){ \t \t new Main(); \t} 这是在主类 –
我建议在MANIFEST.MF设置主类中的“主类”:
Manifest-Version: 1.0
Rsrc-Class-Path: ./
Class-Path: .
Main-Class: net.undeadminecraft.wgh.main.Main
可以解决你的问题,作为主类,你已经在那里是一个内部类的蚀。
有一些引用,可能是另一个Jar文件,它存在于Eclipse中,但在导出时丢失了。 –
我编辑了OP –
显示MANIFEST.MF – Ilya