首页 文章

Maven无法找到Javac编译器:

提问于
浏览 69 次
72

当我尝试生成一个war文件时,它会显示一些错误

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

当我做 echo %path% 它显示

C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\b
in;C:\Program Files\Notepad++\;%JDK_HOME%

我什么时候 echo %JDK_HOME%

D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin

当我的环境变量是jdk时,我不知道为什么maven会引用jre . 我还将已安装的JRE更改为jdk1.6 .

14 回答

  • 0

    Its in Eclipse setup only

    它有4个步骤TODO .

    第1步:右键单击Eclipse项目属性

    第2步:Java构建路径 - >库

    步骤3:选择JRE System Library - >单击Edit按钮 - >单击Installed JREs ...按钮

    第4步:将JRE编辑为Set JRE Home = JAVA_HOME

    ScreentShot:

    enter image description here

  • 4

    转到窗口 - >首选项... - > Java - >已安装的JRE

    编辑JRE Home = JAVA_HOME或JAVA_HOME \ jre

    例如,如果使用安装在C:\ Program Files中的jdk1.6.0_04,请执行以下更改:

    C:\ Program Files \ Java \ jdk1.6.0_04 \ jre或C:\ Program Files \ Java \ jdk1.6.0_04而不是C:\ Program Files \ Java \ jre7中的默认值

  • 3

    有同样的问题,但在我的情况下,目录eclipse指出JRE是JDK . 所以,我搜索了那些tools.jar并且在那里 .

    我做到了

    • Java构建路径>>库

    • JRE系统Lybrary >>编辑

    • 已安装的JRE >>点击我的jdk >>编辑

    • 添加外部Jars >> tools.jar

    然后编译好了

  • 0

    这是一个Eclipse问题 . 当我尝试使用命令行构建它时

    mvn package
    

    它工作得很好 .

  • 147

    听起来你将 JDK_HOME 定义为用户变量, PATH 定义为系统变量,反之亦然 - echo %PATH% 不应包含未解析的变量,如 ...;%JDK_HOME% .

    即使必须明确地放置路径,也要确保 %JDK_HOME%\bin 路径在PATH变量上,未解析 .

  • 2

    JDK_HOME变量应始终指向jdk的基本目录,而不是bin目录:

    D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04
    

    那个定义,修复你的路径

    C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\bin;C:\Program Files\Notepad++\;%JDK_HOME%\bin
    
  • 0

    我有相同的错误,因为JUNIT版本,我有3 3.8.1,我已经改为4.8.1 .

    所以解决方案是

    你必须去POM,并确保你的依赖看起来像这样

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
    
  • 0

    在Eclipse中,导入Maven项目或调用“更新源”等操作在运行Eclipse的同一JVM中运行 . 如果该JVM来自不属于JDK的JRE,则不会有Java编译器(tools.jar) .

    因此,要从Eclipse中启动Maven,用于启动的JRE也需要来自JDK . 默认情况下,Eclipse会注册JRE,但它可以在“Window / Preferences ... / Java / Installed JREs”首选项页面上配置,如上所述Parthasarathy

    或者,您可以在pom.xml中指定compilerId,因此Maven在编译Java代码时不会查找JDK:

    <plugin>
      <artifactid>maven-compiler-plugin</artifactid>
      <configuration>
        <compilerid>eclipse</compilerid>
      </configuration>
      <dependencies>
        <dependency>
          <groupid>org.codehaus.plexus</groupid>
          <artifactid>plexus-compiler-eclipse</artifactid>
          <version>xxxx</version>
        </dependency>
      </dependencies>
    </plugin>
    
  • 2

    我遇到了类似的问题,因为没有人发布类似我的方法,我走了 .

    导航到要启动的运行配置 . 选择了JRE选项卡 . 在那里调整“Runtime JRE”,你准备好了 .

  • -1

    我可以通过以下步骤解决:

    右键单击项目选择构建路径 - >配置构建路径 - >选择库选项卡 - >然后选择JRE系统库[您拥有的版本为JavaSE-1.7] - >单击编辑按钮 - >在JRE系统库窗口中选择执行环境 - 在下拉列表中,您可以选择为我列出的JDK,其JavaSE-1.7 - >在此单击“环境”按钮旁边 - >在“执行环境”窗口中,您必须再次为我选择Java SE,其JavaSE-1.7 - >只需选择它,你将在Compatible JREs选项卡中有选项,所以选择你想要的JDK jdk1.7.0_25 .


    单击确定,然后通过执行适当的操作确定/完成其余窗口 .

    最后做Maven Clean和Maven安装 .

  • 2

    这取决于Maven版本 . 当您安装较新版本的Maven时,不会出现此错误 . 您还可以使用tools.jar文件lib / tools.jar添加另一个目录 - 它也解决了这个问题 .

  • 35

    如果你我们正在做的所有上述步骤可能会混淆,我们的问题只是缺少tools.jre,所以只需通过以下步骤添加tools.jre,问题就解决了 .

    第1步:在eclipse中转到Windows - >首选项

    第2步:Java - >已安装的JRE(双击它)

    第3步:单击“编辑”按钮 - >单击“添加外部JAR”

    第4步:现在选择tools.jar路径

    现在应用更改,它工作正常 .

    Here is screenshoot

  • 0

    虽然有一些非Eclipse对于这个没有提到Eclipse的问题的上述答案,他们需要改变路径变量 . 另一种方法是使用命令行选项java.home,例如:

    mvn package -Djava.home="C:\Program Files\Java\jdk1.8.0_161\jre"
    

    注意最后的\ jre - 一个令人惊讶的必要性 .

  • 0

    对于Intellij Idea,设置适当的一切(与此类似):

    JAVA_HOME = C:\Program Files\Java\jdk1.8.0_60
    JRE_HOME = JAVA_HOME\jre
    

    并且别忘了 restart Idea . 该程序在启动时选择变量,因此在程序运行时对环境变量的任何更改都不会产生任何影响 .

相关问题