【问题标题】:Could not find main class : Program will exit找不到主类:程序将退出
【发布时间】:2013-03-13 05:35:52
【问题描述】:

我弄乱了 Eclipse 上的 JRE 设置。最初项目设置为 1.6,当设置为 1.7 时,我的程序开始显示很多错误。所以当我切换回 1.6 时,所有编译时错误都消失了,但我现在遇到了一个新问题。 当我尝试运行包含主函数的启动类时,这显示在控制台上。 .class 文件都存在。请指教。

java.lang.UnsupportedClassVersionError: Demo : Unsupported major.minor version 51.0
    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)
Exception in thread "main" 

【问题讨论】:

  • 我认为您正在尝试使用比编译目标更旧版本的 JRE 运行程序。例如。您已编译为 1.6 字节码并使用 1.4 JRE 运行 - 只需再次检查所有设置。

标签: eclipse java main .class-file


【解决方案1】:

检查 Java 版本是否在您的 Java 构建路径和项目属性中的 Java 编译器中匹配。我认为您使用 1.6 编译并尝试使用 java 1.7 运行

【讨论】:

    【解决方案2】:

    版本 51.0 意味着仍然是使用 Java 7 编译的类文件。这些文件不会使用 JRE 6 运行。您必须先重新编译它们(重建项目或使用 ant/maven 进行干净编译)。

    【讨论】:

    • 似乎我在尝试在 switch-case 中使用字符串时弄乱了 JRE 配置。非常感谢您的及时回复。
    猜你喜欢
    • 2011-11-28
    • 2011-03-31
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多