编译错误JAVA的多个版本

时间:2016-08-18 12:12:13

标签: java eclipse maven java-8

当我在eclipse中运行我的maven构建时,我遇到了以下问题。我看到很多这样的帖子,但我仍然无法解决这个问题.Mine可能更具体,我知道我的JAVA_HOME指向java6,这是因为我正在使用另一个使用java 6的应用程序我遇到问题的应用程序使用Java 8

 [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方法) 请建议

6 个答案:

答案 0 :(得分:2)

如果你有jdk8然后你可以打开cmd,在这个窗口中运行命令来修改JAVA_HOME set JAVA_HOME=<jdk8 path>。这将仅为此cmd会话实例修改JAVA_HOME env变量,而不是整个操作系统。现在从这个窗口运行maven build命令,它不会失败。

如果你想从eclipse运行构建,那么在eclipse中尝试转向Windows - &gt;偏好 - &gt; Java - &gt;已安装的JRE - &gt;点击添加按钮 - &gt;选择标准VM并单击下一步 - &gt;为JRE Home&#39;提供价值作为路径直到jdk文件夹和&#39; JRE名称&#39;作为java8或任何你想要的 - &gt;单击完成。 现在右键单击您感兴趣的项目 - &gt;点击属性 - &gt; Java编译器 - &gt;勾选&#39;启用项目特定设置&#39; - &GT;并在此处选择1.8。 如果此处不可见1.8,请转到Java Build Path - &gt;添加库 - &gt; JRE系统库 - &gt;替代JRE - &gt;选择jdk8 - &gt;完成

答案 1 :(得分:1)

查看该错误中的路径(C:\Program Files\Java\jre1.8.0_92\..\lib\tools.jar),您已安装了Java Runtime Environment(JRE)。

要编译java,您需要Java Development Kit(JDK),其中包含maven插件所需的工具。

答案 2 :(得分:1)

从错误日志中说出

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

将此代码粘贴到pom.xml build标记内,并确保正确添加依赖关系,并请更改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 home的路径

你的java home未设置

您在jre

中使用的是jdk而不是IDE

答案 3 :(得分:1)

您可以将maven-compiler-plugin配置更改为 JAVA_HOME 。 只需去eclipse 窗口 - &gt; 首选项 - &gt;输入maven-&gt;然后你就可以看到模板之类的东西点击它并查看对于 javac 编译器,只需转到那里,然后更改为您拥有的任何Java版本。

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

如果没有java8且没有.exe文件,则无法继续执行您的要求。 希望它有用。

答案 4 :(得分: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>

答案 5 :(得分:0)

我按照以下链接中的步骤获取便携式JDK: http://bgasparotto.com/convert-jdk-exe-zip/