Java 打开JAR文件时出错

Java 打开JAR文件时出错,java,eclipse,jar,Java,Eclipse,Jar,我已经从JavaEclipse应用程序中导出了JAR文件,并正确地完成了它的工作。 这是导出时显示的内容: 这个罐子不能正常工作。它返回以下错误: 这是我的主要课程: package testJarFileProject; import javax.swing.JOptionPane; class testJarFileProject { public static void main(String[] args) { // TODO Auto-generated method

我已经从JavaEclipse应用程序中导出了JAR文件,并正确地完成了它的工作。 这是导出时显示的内容:

这个罐子不能正常工作。它返回以下错误:

这是我的主要课程:

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文件是不正确的,但它不会给我一个错误吗? 有什么帮助吗
谢谢你

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

如果我的假设是正确的,您的jar将被“执行”,即执行如下命令行:
java-jaryourjar.jar

在这种情况下到底发生了什么?JVM打开jar并尝试访问文件
META-INF/MANIFEST.MF
,该文件应包含以下行:

Main类:com.company.MyClass

JVM提取完全限定的类名,并尝试执行等同于以下内容的操作:

java-cp yourjar.jar.com.company.MyClass

如果在jar中找不到class
com.company.MyClass
,将打印您发送的错误消息

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

如果一切正常,请检查编译器和JVM版本的兼容性。可能您使用的编译器版本高于运行程序所使用的JVM版本


祝你好运

你能发一些代码吗?我打赌你没有main方法……jar文件不同于可执行的jar文件。你是试图打开(解包)jar文件,还是试图通过将jar文件放在类路径上并从中调用类来使用它,还是试图使用
java-jar
语法运行它的默认类?如果是后者,您需要明确说明在构建jar时应该使用哪个类作为主类。是java版本导致了这个问题吗?我有META-INF文件夹,所有要求都已完成并正确无误,我在桌面上安装的java版本中是否存在问题?这可能就是问题所在。使用
java-version
检查您的java版本。还要检查编译器版本。据我所知,您是使用IDE编译代码的,所以请检查它的首选项。