簡體   English   中英

如何將我的 Eclipse 項目轉換為早期的 Java 版本?

[英]How do I convert my Eclipse project to an earlier Java version?

我在 Eclipse 中有一個項目,它以前使用 JRE7 並引用了 JRE7 系統庫。 我現在絕對需要它在 JRE6 中運行。 我沒有使用任何 Java 7 特定語法,因此源代碼本身是完全兼容的。 這是我已經做過的事情:

  • 我安裝了JDK6。
  • 然后我轉到Window > Preferences > Java > Installed JREs並將 JRE6 設置為默認值。
  • 我將項目的構建路徑配置為引用 JRE6 系統庫而不是 JRE7 系統庫。
  • 最后,我轉到運行配置 > JRE並將其設置為在 JRE6 中運行。

在最后一步之后,對話框的頂部會立即顯示一條消息:

JRE 與 project.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 中運行。 所以大概我需要以某種方式重新編譯源代碼中的所有 the.class 文件。 我認為 Eclipse 會自動執行此操作。 有任何想法嗎?

首先,清理你的項目:

項目 > 清潔

如果那不能解決問題...

其次檢查您的項目特定的 java 編譯器:

項目 > 屬性 > Java 編譯器

Colin 提供的第二種方法對我有用。

以下是該方法所有步驟的直觀表示:

在此處輸入圖像描述在此處輸入圖像描述在此處輸入圖像描述在此處輸入圖像描述

我認為 Eclipse 會自動執行此操作。 有任何想法嗎?

除非您要求 Eclipse 這樣做,否則 Eclipse 不會清理所有項目。 它只會清除您修改過的源代碼生成的類文件。 您應該徹底構建您的解決方案,重建所有內容並再次運行,它應該可以正常工作。

謝謝大家。 雖然解決了,但我想添加另一種方法來添加另一種風味。


這可以通過在文件 project_directory/.settings/org.eclipse.jdt.core.prefs 中手動編輯項目首選項然后在 eclipse 中刷新項目來完成。

從 1.7 更改為 1.6

我遇到過清理項目並不能解決問題的案例。 實際上,我必須關閉並重新打開特定項目才能使其正常工作。

更改項目->屬性->Java 編譯器->編譯器合規級別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM