2016-08-18 68 views
-2

我在eclipse中運行我的maven版本時遇到了以下問題。我看到很多這樣的帖子,但我仍然無法解決這個問題。我可能會更具體一些,我知道我的JAVA_HOME指向java6,這是因爲我正在使用另一個使用java 6的應用程序。應用程序在我遇到問題,使用Java 8編譯錯誤JAVA的多版本

[ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- 
[ERROR] Unable to locate the Javac Compiler in: C:\Program Files\Java\jre1.8.0_92\..\lib\tools.jar Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required). .In most cases you can change the location of your Java installation by setting the JAVA_HOME environment variable. [INFO] 1 error 
<br>[INFO] ------------------------------------------------------------- 
<br>[INFO] ------------------------------------------------------------------------ 
<br>[INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ 
<br>[INFO] Total time: 11:53 min [INFO] Finished at: 2016-08-18T16:52:13+05:30 
<br>[INFO] Final Memory: 11M/141M 
<br>[INFO] ------------------------------------------------------------------------ 
<br>[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project 
Compilation failure [ERROR] Unable to locate the Javac Compiler in: [ERROR] C:\Program Files\Java\jre1.8.0_92\..\lib\tools.jar 
[ERROR] Please ensure you are using JDK 1.4 or above and [ERROR] not a JRE (the com.sun.tools.javac.Main class is required). 
<br>[ERROR] In most cases you can change the location of your Java [ERROR] installation by setting the JAVA_HOME environment variable. 
[ERROR] -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile 

我該如何解決這個問題,而無需安裝Java 8,因爲它可能會更改我的JAVA_HOME等這將使我的其他應用程序無法運行。有沒有辦法讓JDK文件夾不運行.exe(p.s我已經嘗試過7zip方法) 請建議

+3

您可以從其他計算機上覆制它 – Jens

+3

您可以下載'.exe',將它解壓縮,然後運行['unpack200'(http://docs.oracle.com/javase/7/docs/technotes/tools/share/unpack200.html)工具(與它一起)將'.pack'文件解壓縮到'.jar'庫中,然後它就可以正常工作。 –

+0

@ A_Di-Matteo,我該如何解壓? – user3223509

回答

2

如果你有jdk8,那麼你可以打開CMD,在此窗口中運行命令來修改JAVA_HOME set JAVA_HOME=<jdk8 path>。這將僅修改此cmd會話的此實例的JAVA_HOME env變量,而不修改整個操作系統。現在從這個窗口運行maven build命令,它不會失敗。如果你想從eclipse運行構建,然後在eclipse中嘗試去Windows - >首選項 - > Java - >已安裝的JRE - >單擊添加按鈕 - > Sel標準虛擬機,然後單擊下一步 - >把'JRE Home'的值作爲jdk文件夾的路徑,'JRE Name'作爲java8或者你想要的任何東西 - >點擊Finish。 現在右鍵單擊您感興趣的項目 - >單擊屬性 - > Java編譯器 - >勾選「啓用項目特定設置」 - >並在此處選擇1.8。 如果1.8在此處不可見,請轉到Java Build Path - > Add Library - > JRE System Library - > Alternate JRE - > select jdk8 - > Finish

+0

如果我從cmd窗口運行構建,這將是一個很好的解決方案。我從日食運行maven – user3223509

+0

檢查我更新的答案。希望能幫助到你。 –

+1

在Eclipse中,Maven構建的重要之處僅在於該構建的啓動配置是指JDK而不是JRE。使JDK成爲默認的JRE應該可以解決所有未來的啓動配置問題。在這裏不需要更改項目設置。 –

0

您可以下載JDK的版本而無需安裝程序。 然後在你遇到問題的pom.xml的編譯器配置中指定一個JDK 1.8作爲源和目標。這樣你不需要改變你的JAVA_HOME

<build> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
      <compilerVersion>1.8</compilerVersion>  
      <fork>true</fork> 
      <executable>D:\jdk1.8\bin\javac</executable>     
     </configuration> 
    </plugin> 
<build> 
+0

'd:\ jdk1.8 \ BIN \ javac'你還在需要安裝java – emotionlessbananas

1

綜觀這個錯誤(C:\Program Files\Java\jre1.8.0_92\..\lib\tools.jar)您已經安裝了Java運行時環境(JRE)的路徑。

要編譯java,您需要包含maven插件所需工具的Java Development Kit(JDK)。

+0

或者您的JAVA_HOME指向JRE而不是JDK。在這兩種情況下,答案都是使用JDK而不是JRE來構建項目 – loicmathieu

1

從你的錯誤日誌,它說的是

[ERROR] Unable to locate the Javac Compiler in: [ERROR] C:\Program Files\Java\jre1.8.0_92\..\lib\tools.jar

粘貼此代碼在您的pom.xmlbuild標籤,使確保您正確添加依賴關係,並請更改您的java version accordingly

這將只在您有在你的pom.xml錯了。

<plugins> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-compiler-plugin</artifactId> 
<version>3.1</version> 
<configuration> 
<source>1.8</source> 
<target>1.8</target> 
<verbose>true</verbose> 
<fork>true</fork> 
<executable>${JAVA_HOME}/bin/javac</executable> 
<compilerVersion>1.8</compilerVersion> 
</configuration> 
</plugin> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-surefire-plugin</artifactId> 
<version>2.4.2</version> 
<configuration> 
<jvm>${JAVA_HOME}/bin/java</jvm> 
<forkMode>once</forkMode> 
</configuration> 
</plugin> 
</plugins> 

JAVA_HOME必須指向這樣

C:\Program Files\Java\jdk1.8.0_65

編輯

必須有各種原因喜歡

你的POM是沒有得到路徑的java家庭

您使用jre代替jdk在你的java家裏沒有設置你的IDE

1

你可以改變你的Maven的編譯器插件配置,您JAVA_HOME。 只要進入蝕窗口 - >喜好 - >型maven->,你可以看到類似上模板點擊查找javac的編譯,只是去那裏,並切換到任何Java版本你有。

 <configuration> 
     <!-- http://maven.apache.org/plugins/maven-compiler-plugin/ --> 
     <source>${cursor}1.6</source> 
     <target>1.6</target> 
    </configuration> 

沒有java8和沒有.exe文件,你不能繼續你的要求。 希望它有用。