簡體   English   中英

此環境中未提供編譯器。 也許您在 JRE 而不是 JDK 上運行?

[英]No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

我正在使用 m2eclipse 在 Eclipse 編譯一個項目。 我像這樣在 Eclipse 中設置 JDK 路徑:

Windows-->preferences-->installed jres--> jdk1.7.xx  path

但這顯示錯誤

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE    rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-   plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
  1. 在您的 Eclipse IDE 上,進入Window > Preferences > Java > Installed JREs > 並檢查您安裝的 JREs 您應該在那里有一個帶有 JDK 的條目。
  2. 選擇執行環境,如下所示。 單擊確定
  3. 然后右鍵單擊您的項目 -> Maven ->更新項目

此外,您可能需要更改 Maven JRE(請參閱 @jlars62 答案),如下所示。 轉到 Run -> Run Configurations,選擇我正在運行的 Maven Build(從左側面板)。 然后,我單擊 JRE 選項卡並選擇了選項 Workspace default JRE

在此處輸入圖片說明

對我來說,這正是 eclipse 的專家抱怨的

在此處輸入圖片說明

所以,我按Edit按鈕並更改 JDK 文件夾的路徑,然后清理項目,一切開始工作

  1. JAVA_HOME環境變量設置為 JDK 根文件夾 - 如果您運行命令行或 maven ( mvn ),則這是必需的。
    • (在谷歌搜索JAVA_HOME了解更多信息)
  2. 在 Java Compiler 部分的項目屬性中選擇所需的 JDK - 如果您直接從 eclipse 運行

對我來說,在我對 pom.xml 進行更改之前,什么都不起作用:

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

其他注意事項

我可以看到 m2e 在 JRE 中執行,而不是在 JDK 中執行。 我沒有做任何改變,包括將它添加到 eclipse.ini:

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

最后,我從來沒有讓 m2e 在 JDK 中執行,但是顯式設置 Java 編譯器(如上所述)可以解決問題。

在我的情況下,它是通過這樣做解決的:

轉到您的“運行時配置”並將您的 JRE 配置為 JDK。

為您的運行時選擇正確的 JDK

選擇默認 JRE

我復制了答案以防萬一它因某種原因被刪除,但來源在這里

嘗試從 Eclipse 中進行 Maven 構建時出現此錯誤。

對我來說,答案是Run -> Run Configurations ,選擇我正在運行的Maven Build (從左側面板)。 然后,我單擊JRE選項卡並選擇了選項Workspace default JRE

轉到 Windows -> 首選項 -> Java -> 已安裝的 JRE

可能是 jre 已經添加了在此處輸入圖片說明

點擊添加 -> 標准虛擬機 -> 下一步 -> 目錄

並在我的案例中瀏覽 JDK 路徑是C:\\Program Files\\Java\\jdk1.8.0_111

然后點擊完成。

你會看到這樣的窗口在此處輸入圖片說明

選擇 JDK -> 應用 -> 確定

你已經完成了。

我遇到了同樣的問題,我只是將JAVA_HOME添加到環境變量中

環境變量

  • 如果您使用的是 Eclipse,請參考https://stackoverflow.com/a/21279068/6097074
  • 如果您使用的是 intellij,只需在添加JAVA_HOME后從項目目錄打開命令提示符並運行mvn clean install (不要使用 intellij 終端)。

但是,我嘗試了上述所有方法,仍然收到相同的錯誤消息。

在我的例子中,一個實際的 JRE 在項目特定的構建路徑中被錯誤地用作 JRE 系統庫,這顯然覆蓋了這里討論的所有其他設置。

如果您的情況是這樣,請嘗試以下操作:

  1. 打開Java Build Path的項目專用庫:右鍵“Project > Build Path > Configure Build Path...”,選擇“Libraries”選項卡。
  2. 選擇“JRE 系統庫”條目並點擊“刪除”。
  3. 點擊“添加庫...”。
  4. 彈出一個向導。 選擇“JRE 系統庫”並點擊“下一步 >”。
  5. 現在選擇正確的 JDK(在我的例子中是“Workspace default JRE”,這是我使用 JDK 配置的)。
  6. 點擊“完成”關閉向導。
  7. 點擊“確定”關閉“屬性”對話框。

如果 jaipster 的答案不起作用,另一種方法是轉到:
窗口 > 首選項 > Java > 已安裝的 JRE

然后編輯 jre,使其指向 jdk 而不是 jre(在 jre 包編輯器中歸檔的 jre home)

那對我有用。

如果您從cmd運行Maven命令,請確保在運行該命令之前設置 jdk 路徑。 就我而言,我創建了一個包含以下內容的.bat文件:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"

我在嘗試使用mvn clean install構建我的項目應用程序的 jar 文件時遇到了同樣的問題,盡管該應用程序在從 Eclipse 運行時運行良好。

問題是,確實太天真了,我沒有設置JAVA_HOME環境變量。 我所要做的就是將 JAVA_HOME 環境變量設置為 JDK 目錄,確保它不是直到“\\bin”並且沒有分號“;” .

在此處輸入圖片說明

我的理解是這樣的:

該應用程序在Eclipse工作細如JRE系統庫指的是JRE的JDK文件夾,而不是外部JRE文件夾中沒有JDK里面 [正如在其他答案中很好地解釋的那樣]

此配置不適用於我們在命令提示符下運行的maven命令。 它仍然會尋找 JAVA_HOME 變量來訪問 JRE 系統庫,當找不到它時,它指的是沒有 JDK 的外部 JRE 文件夾。

我的回答與 Windows 環境中的 Eclipse 有關。

我去了首選項 --> Java --> 安裝的 JRE 我在這里沒有看到 JDK。 我只在這里看到了 JRE。 所以我添加了JDK,然后取消選中JRE。 然后檢查JDK。 然后我使用運行配置運行 POM 文件。 選擇選項卡 JRE 並選擇選項“工作區默認...”這是圖像

在此處輸入圖片說明

在此處輸入圖片說明

有幾個選項可以指定。

步驟:在項目資源管理器中的項目上轉到運行-> 運行配置-> 單擊 Maven 構建-> 單擊您的構建配置/或創建一個新配置。 您將看到作為下面給定快照的窗口,單擊那里的 JRE 選項卡。

您會看到有 3 個選項 1) 工作區默認 JRE 2) 執行環境 3) 備用 JRE 在此處輸入圖片說明 1) 工作區默認 JRE 是從頂部的“窗口”菜單設置的 -> 首選項 -> Java -> 已安裝的 JRE - 在這里您可以添加您的 jdk 在此處輸入圖片說明 2)執行環境jdk可以在@ksnortum提到的pom.xml中設置

<build>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <fork>true</fork>
            <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
        </configuration>
    </plugin>
</plugins>

3) 替代 JRE 可用於從您的目錄中選擇一個 jdk

問題陳述= 此環境中未提供編譯器。 也許您在 JRE 而不是 JDK 上運行? 智能

解決方案

請像下面這樣設置環境變量來解決問題

變量名:JAVA_HOME

變量值:C:\\Program Files\\Java\\jdk1.8.0_202

變量名:M2_HOME

變量值:C:\\Program Files\\apache-maven-3.6.0

此外,在“系統變量”中添加 Java 和 maven 路徑,如下所示:

  1. C:\\Program Files\\Java\\jdk1.8.0_202\\bin

  2. C:\\Program Files\\apache-maven-3.6.0\\bin

雖然問題是關於Eclipse設置的錯誤,但認為使用IntelliJ和 Windows 10 設置修復此錯誤的答案在這里也可能有所幫助。

1 . 轉到File --> Settings --> Build, Execution, Deployment --> Build Tools --> Maven --> Importing

2 . 如下圖設置Importer JDKJAVA_HOME

在此處輸入圖片說明

此外, JAVA_HOME應該在 Environment Variables --> System variables 中設置為JDK路徑,並將%JAVA_HOME%\\bin添加到路徑系統變量

對我來說,JRE 在 JDK 路徑之前位於 PATH 環境變量中

  1. C:\\ProgramData\\Oracle\\Java\\javapath
  2. C:\\env\\jdk1.8.0_151\\bin

所以我刪除了 1. 可能交換它們也會修復它。

這個問題還有另一個可能的答案,我可能是唯一一個愚蠢到偶然發現這個問題的人,但我認為值得補充,因為沒有其他答案適用,因為我已經正確設置了這些設置。

安裝 JDK 時,安裝程​​序會詢問您要將文件安裝到何處。 默認情況下,在 Windows 上,這類似於 C:\\Program Files\\Java\\jdk1.8.0_74(或您正在安裝的任何版本)。

然后它會要求您提供一個用於安裝 JRE 的目錄,默認情況下該目錄類似於 C:\\Program Files\\Java\\jre1.8.0_74。

注意一個是jdk 1.8.0_74,另一個是jre 1.8.0_74

我很着急,認為安裝程序兩次問我同樣的問題,將我的 JDK 和 JRE 安裝位置都設置為 D:\\devtools\\jdk\\jdk1.8.0_74,導致安裝程序用 JRE 覆蓋了 JDK。 這導致(除其他外)我的 JDK bin 中缺少 javac.exe,並且 OP 在我的所有 maven 構建中報告了相同的錯誤。

我得到了解決方案。

此問題最常見的解決方案是將jdk 位置更改為我安裝的 JRE而不是JRE 位置,但這一次並沒有解決我的問題。

所以我做了下面的事情來解決這個問題。 展開已安裝的 JRE選項卡,您將找到一個執行環境選項卡。

單擊您最喜歡的執行環境。 就我而言,它是JAVASE-1.8 在那里它顯示了 2 個選項。 JDK 和 JRE 在那里選擇JDK ,問題就解決了。

在此處輸入圖片說明

我嘗試了大部分答案都沒有成功。 對我有用的是(在關注https://stackoverflow.com/a/21279068/2408893 之后):

  • 右鍵單擊項目-> 屬性
  • 選擇 Java 構建路徑
  • 選擇 JRE 系統庫
  • 點擊編輯
  • 在執行環境中選擇一個jdk

在此處輸入圖片說明

  • 單擊完成
  • 構建並運行

我只是在這個問題上浪費了 3 個小時,直到我設法讓它發揮作用。 發出 mvn compile 命令時,我在 Eclipse 終端中遇到此錯誤:

此環境中不提供編譯器。 也許您在 JRE 而不是 JDK 上運行?

所以我在這里讀到我必須創建一個名為 JAVA_HOME 的新系統變量,並使其指向 jdk 安裝文件夾。 然而,這產生了另一個錯誤:

不再支持源選項 1.5。 使用 1.6 或更高版本

找不到解決這個問題的方法,所以......

因此,讓這一切消失的修復方法是安裝 Java SE Development Kit 8! 我在使用 9 時認為如果它是最新的,它一定會更好......

反正...

  1. 從您的計算機上卸載所有 Java 版本
  2. 從這里安裝 JDK8: http : //www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. 然后定義JAVA_HOME系統環境值——教程在這里: https : //docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. 重新啟動 Eclipse 並享受! (至少我是這樣做的)

希望這能讓一些可憐的流浪者免於麻煩。

就我而言,我的系統變量路徑具有“C:\\ProgramData\\Oracle\\Java\\javapath”位置。

在“C:\\ProgramData\\Oracle\\Java\\javapath”位置java,javaw只在那里。 所以我得到了同樣的錯誤。

一旦我刪除了“C:\\ProgramData\\Oracle\\Java\\javapath”文件夾中的所有文件,我的錯誤就得到了解決。

嘗試這個。

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable> path to jdk \bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

我遇到了同樣的問題,我犯的錯誤是我只在路徑 var 中添加了 jre 路徑,而不是 jdk 路徑。當 jdk 路徑添加到路徑並構建 Maven 項目時,它的工作完美。謝謝大家

我做了以下更改,它對我有用。希望它可以幫助某人。 在此處輸入圖片說明

當我創建一個新的 EC2 ubuntu 16.04 實例並且已經安裝了 Java 並且運行 mvn clean package 時,我遇到了同樣的錯誤,我遇到了這個問題,下面的解決方案對我有用。

如果您在 Ubuntu 服務器上工作,那么您可以嘗試再次安裝 Java,為此您可以使用此答案如何在 Ubuntu Linux 上安裝 JDK

在 Windows 7 - 64 位中,存在一個權限問題,它阻止安裝程序將文件 C:\\Program Files\\Java\\jdk1.6.xx\\lib\\tools.jar 解壓到本地。 這個 jar 文件是 maven-compiler-plugin 版本 3.x 使用的,而不是通常的 javac

解決方案:以管理員身份運行 Java JDK 安裝程序! 並確保 tools.jar 位於 C:\\Program Files\\Java\\jdk1.6.xx\\lib\\

如果您使用的是 m2e maven 集成插件,您希望通過 Eclipse 中的以下步驟查看該文件對 Eclipse 可見:

轉到 Window -> Preferences -> Java -> installed JREs 選擇您正在使用的 JDK (C:\\Program Files\\Java\\jdk1.6.xx) 按 Edit 查看包含 tools.jar 的 jar 列表,或者您可以將其添加為 Add External JAR 然后通過以下步驟配置 maven 運行:

運行->運行配置->填寫名稱、基本目錄和目標。 然后在同一個窗口中移動到 JRE 選項卡並指向 JDK \\jdk1.6.xx\\

除了上面的回答,我可以說只是嘗試從終端(Eclipse 之外)運行 Maven。 這樣,如果是從外部構建而不是在Eclipse中構建,則可以理解問題應該在Eclipse中。

關於這個問題有幾個答案,但都與JDK的正確路徑配置有關,但只有JR​​E才能解決這個問題。

我們只需要利用部署組件配置Java EE項目打包war文件的路徑,然后重新運行maven-install即可。

使用部署程序集的步驟:

  1. 右鍵單擊 Java EE 項目 --> 單擊屬性 --> 單擊部署程序集

  2. 點擊添加按鈕-->點擊文件系統中的檔案-->點擊下一步-->點擊添加-->進入.m2\\respository目錄並搜索生成的war文件-->選擇war文件--> 點擊打開按鈕 --> 點擊應用 --> 確定

  3. 右擊項目-->點擊Run As下的Maven Install

這將成功構建您的項目,而不會出現任何編譯器錯誤。

希望這可以解決沒有 JDK 的問題。

你錯過了任何maven構建嗎?

除了上面的JRE更改。我仍然遇到類似的問題。我添加它后工作正常,我缺少JUnit依賴。

希望這會有所幫助。

我去了Preferences - > Java - > Installed JREs我沒有在這里看到JDK。 我這里只看到了JRE。 所以我添加了JDK。

在這里我們必須強制刪除JRE而不是僅僅取消選中。

右鍵單擊您的項目並作為 maven install 運行,然后再次運行您的應用程序。 如果這不起作用,請轉到您項目的文件夾直接啟動命令行並運行“mvn install” 在此處輸入圖像描述

在 Linux 中,做一個 docker 示例,我一定不能只安裝 JRE 的 JDK。 sudo apt install openjdk-8-jdk並在配置文件中設置 JAVA_HOME 並將 JAVA_HOME/bin 添加到路徑之后,它就構建了!

對我來說,我已經升級到 Big Sur Mac OS,我必須刪除它,然后它運行良好。

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

這是因為它正在尋找 JDK 並正在創建 JRE。

推薦解決方案:

窗口 > 首選項 > Java > 已安裝的 JRE > 編輯 > 單擊目錄 > 瀏覽 JDK 路徑...。

那應該可以正常工作。
它對我來說很好!

在構建項目時,確保將 jre 指向 jdk 路徑。 這可以在特定項目的運行配置部分中完成。

請為windows使用

  1. 如果您使用的是 intellij,只需在添加 JAVA_HOME 后從項目目錄打開命令提示符並運行 mvn clean install(不要使用 intellij 終端)。

  2. 設置 JAVA_HOME=C:\Program Files\Java\jdk1.8.0_202

暫無
暫無

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

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