我如何将Eclipse项目转换为Java早期版本?

问题描述 投票:22回答:6

我在Eclipse中有一个项目,该项目以前使用过JRE7,并引用了JRE7系统库。我绝对需要它现在可以在JRE6中运行。我没有使用任何Java 7特定语法,因此源代码本身是完全兼容的。这是我已经完成的工作:

  • 我安装了JDK6。
  • 然后我去了[[Window> Preferences> Java> Installed JREs,并将JRE6设置为默认值。
  • 我配置了项目的
  • build path
  • 以引用JRE6系统库而不是JRE7。最后,我转到了[[Run Configurations> JRE,并将其设置为在JRE6中运行。
  • 在最后一步之后,对话框顶部立即显示一条消息,内容为:

    JRE与项目.class文件不兼容:1.7

    并且当我运行项目时,我收到此错误消息:

    java.lang.UnsupportedClassVersionError: ExampleProcessingApp : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) at java.net.URLClassLoader.access$000(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:212) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:314) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:146) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:608) at sun.applet.AppletPanel.createApplet(AppletPanel.java:798) at sun.applet.AppletPanel.runLoader(AppletPanel.java:727) at sun.applet.AppletPanel.run(AppletPanel.java:380) at java.lang.Thread.run(Thread.java:679)

    正如我之前提到的,该项目的实际代码与Java 6语法没有什么不同,因此它将在JRE6中运行。因此,大概我需要以某种方式重新编译源代码中的所有.class文件。我以为Eclipse会自动执行此操作。有什么想法吗?

  • java eclipse backwards-compatibility
    6个回答
    40
    投票
    项目>清理

    如果那不能解决问题...

    再次检查您的项目特定的Java编译器:

    项目>属性> Java编译器


    10
    投票
    这里是该方法所有步骤的直观表示:

    << img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9FR0x2ai5wbmcifQ==” alt =“在此处输入图像描述”>“在此处输入图像描述”“在此处输入图像描述”“在此处输入图像描述”


    3
    投票
    我以为Eclipse将自动执行此操作。有什么想法吗?
    除非您要求Eclipse,否则它不会清除所有项目。它仅清除已修改源的生成的类文件。您应该彻底构建解决方案,重新构建所有内容,然后再次运行,它应该可以正常工作。

    1
    投票

    1
    投票

    可以通过在文件project_directory / .settings / org.eclipse.jdt.core.prefs中手动编辑项目首选项,然后在Eclipse中刷新项目来完成。


    Change from 1.7 to 1.6

    0
    投票
    Project-> Properties-> Java Compiler-> Compiler Compliance Level
    最新问题
    © www.soinside.com 2019 - 2025. All rights reserved.