无法加载Main-Class清单属性

时间:2011-03-03 19:38:10

标签: java eclipse jar

从eclipse导出后我有错误:

C:\Program Files\Java\jre6\bin>java C:\wamp\www\JOGL\test.jar
Exception in thread "main" java.lang.NoClassDefFoundError: C:\wamp\www\JOGL\test/jar
Caused by: java.lang.ClassNotFoundException: C:\wamp\www\JOGL\test.jar
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: C:\wamp\www\JOGL\test.jar.  Program will exit.

从此文件中显示:

Manifest-Version: 1.0
Sealed: true
Main-Class: windows.SimpleScene

使用Fat Jar导出时出现相同的错误

更新

C:\Program Files\Java\jre6\bin>java -jar C:\wamp\www\JOGL\test.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GLEventListener
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLEventListener
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 12 more
Could not find the main class: windows.SimpleScene. Program will exit.

5 个答案:

答案 0 :(得分:4)

要运行jar文件,请运行:

java -jar (name-of-jar-file)

所以你应该跑:

java -jar C:\wamp\www\JOGL\test.jar

答案 1 :(得分:2)

确保在导出和创建JAR时,设置了三件事:

  1. 将其导出为"可运行的jar文件"。
  2. 定义您的启动配置(您的类中包含main方法)。
  3. 选择"将所需的包打包到生成的JAR"。
  4. enter image description here

答案 2 :(得分:1)

您输入的命令只有“java file.jar”用于运行.class文件,运行jar的正确语法是“java -jar file.jar”,它会搜索jar以获取清单并执行它。< / p>

您也可以通过添加class-path和主类名

来运行它
java -cp C:\wamp\www\JOGL\test.jar com.ext.Example

答案 3 :(得分:0)

这不是你运行JAR文件的方式!

使用java -jar test.jar语法

答案 4 :(得分:0)

您看到此错误的原因是java正在查看您当前的工作目录作为类路径。您的JAR文件位于不同的目录中。

您有以下选择: 1) cd C:\ wamp \ www \ JOGL java -jar test.jar(当您在清单文件中定义Main-Class时,java会从那里选择它)。 确保您的jar保持与包结构相同的目录结构。

2)java -cp C:\ wamp \ www \ JOGL \ test.jar window.SimpleClass(将类路径指向你的jar)

注意:如果您对此JAR文件之外的其他JAR /类具有依赖性,则它们必须是类路径的一部分(绝对/相对于当前目录)。