2014-02-09 170 views
0

我已经从Java Eclipse应用程序及其工作正确导出了JAR文件。 这是什么节目,当出口:JAR文件打开时出错

enter image description here

这个JAR文件无法正常工作。它返回以下错误:

enter image description here

有我的主类是:

package testJarFileProject; 

import javax.swing.JOptionPane; 

class testJarFileProject { 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    JOptionPane.showOptionDialog(null, 
      "my application", 
      "show", 
      JOptionPane.OK_CANCEL_OPTION, 
      (Integer) 0, 
      null, 
      new String[]{"ok"}, 
      "default"); 

    } 

    } 

是什么问题?导出jar文件不正确,但它不会给我一个错误? 任何帮助 谢谢

+1

你能发表一些代码吗?我打赌你没有一个主要的方法... – hichris123

+1

一个jar文件与**可执行文件** jar文件不同。 –

+0

ok等待编辑 –

回答

0

你应该明白当你“打开”你的jar时会发生什么。我相信你的意思是你双击它。

如果我的假设是正确的,那么你的jar就会被“执行”,即执行如下命令行:java -jar yourjar.jar

在这种情况下真的发生了什么? JVM打开你的罐子,并试图访问文件META-INF/MANIFEST.MF应包含类似于下面的一行:

Main-Class: com.company.MyClass

JVM提取完全合格的类名并尝试执行操作,等效于:

java -cp yourjar.jar com.company.MyClass

如果在jar中找不到类com.company.MyClass,将会打印出错信息,如发送的错误信息。

现在你有所有的工具来发现你的问题。首先,尝试使用像java -cp yourjar.jar com.company.MyClass这样的命令来运行程序。如果错误仍然存​​在,请检查jar:它没有主类。如果问题消失,请检查清单。它包含错误。

如果一切看起来都不错,请检查编译器和JVM版本的兼容性。可能你使用的编译器编译的代码比你用来运行程序的JVM高。

祝你好运。

+0

我有META-INF文件夹所有的要求已经完成和正确,在我的桌面安装的Java版本的问题呢? –

+0

这可能是问题所在。使用'java -version'检查你的Java版本。检查你的编译器版本。据我所知,你使用IDE编译你的代码,所以检查它的偏好。 – AlexR