簡體   English   中英

使用 Java 1.6 在 Eclipse Mars 上運行 Ant

[英]Run Ant on Eclipse Mars with Java 1.6

我下載了最新版本的 Eclipse (Mars) 並在 eclipse.ini 文件中將所需的 Java 版本更改為 1.6,因為我的項目使用 Java 1.6。

我在 Eclipse 中配置了已安裝的 JRE 以使用 Java 1.6。 但是當我嘗試執行我的 ant 目標時,它會產生一個錯誤:

不支持低於 1.7 的 JRE 版本。

是否有任何解決方法可以在 Mars 版本中使用 Java 1.6,因為我目前無法升級到 Java 1.7?

升級到 Eclipse Mars 后,我遇到了同樣的問題。

我通過將項目的外部工具配置的運行時環境更改為 JDK7解決了這個問題。

我假設您知道如何在 Eclipse 中將 JDK7 添加到已安裝的 jre 中

打開外部工具配置...,然后將 JRE 更改為 JDK 1.7

打開外部工具配置

然后更改JRE

更改 JRE

但這會產生另一個問題,編譯后的 jar 將在 JDK 7 中,這不適用於具有 JDK6 的生產服務器。

要解決這個問題,只需將任務中的目標屬性更改為 1.6

<javac target="1.6">

將任務目標更改為 1.6

根據@dag 和@Chris 的建議,這里是更新的 ant javac 任務。在此處輸入圖片說明

我們使用修補過的 Ant 插件為我們解決了這個問題。 對於 Eclipse Neon,還可以查看此鏈接,如第一頁的評論中所述。

請查看<javac>參考https://ant.apache.org/manual/Tasks/javac.html#compilervalues並將以下屬性添加到您的<javac> -Task: compiler="javac1.6" source="1.6" target="1.6" executable="[path-to-jdk-1.6/bin/javac]" fork="true" taskname="javac1.6"

我在 JRE 1.8 上運行 Eclipse Oxygen,但構建了一些舊的 1.7 項目,並且將jdk1.7.0_40作為單獨的 JRE 安裝並在工具外部配置中進行設置,但仍然出現“不支持小於 1.8 的 jre”錯誤。

對我來說修復它的只是直接更新構建 xml 配置,特別是如果您有另一個可以復制的工作項目。

具體來說,我去了啟動配置:

workspace/.metadata/.plugins/org.eclipse.debug.core/.launches

並編輯了相關的...build.xml.launch文件,替換為:

<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_40"/>

和:

<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_INSTALL_NAME" value="jdk1.7.0_40"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_INSTALL_TYPE_ID" value="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType"/>

並重新啟動 Eclipse 以獲取它。

不知道這在 Eclipse 支持方面是前進還是后退,但它解決了我的問題。

不,您不能使用 JDK1.6 或更低版本,因為 Eclipse Mars 只能在 Java >=1.7 下運行。 參考這個鏈接。

用於運行 Eclipse 的 Java 不必與用於項目的 Java 相同。 您必須使用 Java 7(或 8)運行 Eclipse Mars,但您可以將 Java 6 用於您的項目。

在“Java > Installed JREs”的首選項中告訴 Eclipse Java 6 並將其設置為默認值(或在單個項目中選擇它)。

我最近在我的機器上使用 Java 8,使用 Elicpse Oxygen 並嘗試使用 Ant 構建 Java 6 項目時遇到了這個問題。 我使用了上面的一些建議,但在 Ant 構建過程中也遇到了一些奇怪的行為。 最后它奏效了,這是我的步驟:

1)Java home 最終指向 Java 8。

2) 在 Ant 腳本中設置@Chris 建議的值。

3) 不要更改 Ant Runtime JRE,我的保留在 8,實際上如果我將其更改為 6,則不會運行 Ant 構建......

4)項目設置構建路徑和編譯器級別都設置為6。

5) 運行構建。

這會生成一個對我有用的 Java 6 級別的構建。

我的解決方案是下載與 JRE 6/7 兼容的 ant 版本,並在“外部工具配置”中更改 Ant 主頁路徑以匹配我下載的路徑(ClassPath > Ant Home”)

在此處輸入圖片說明

添加大於 1.7 的新 JRE 版本

暫無
暫無

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

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