当我在项目上运行maven包时,我将JAVA_HOME变量设置为C:\Program Files\Java\jre6\
它告诉我它无法解析依赖
[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (default) on project roo: Execution default of goal o
rg.codehaus.mojo:aspectj-maven-plugin:1.0:compile failed: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.0 or one of its dependencies
could not be resolved: Could not find artifact com.sun:tools:jar:1.4.2 at specified path C:\Program Files\Java\jre6/../lib/tools.jar ->
[Help 1]
因此它假设JAVA_HOME实际上比实际更深一层,我查看了maven本地存储库并发现log4j 1.2.16使用了这种依赖
我试图让JAVA_HOME看起来像C:\Program Files\Java\jre6\bin\
但是maven不会运行,它告诉我我的JAVA_HOME路径错了
答案 0 :(得分:16)
您需要Java JDK而不仅仅是JRE。你可以在Oracle's Java Page
获得一个编辑: 来自Maven Properties Guide:
${java.home} specifies the path to the current JRE_HOME environment use with relative paths to get for example:
<jvm>${java.home}../bin/java.exe</jvm>
在c:\jdk
中使用JDK,maven $ {java.home}指向c:\jdk\jre
答案 1 :(得分:8)
我也发现这帮助了我。
... 使用Eclipse,您需要验证已安装的JRE是否正在使用JDK安装。
这意味着在配置选项中...... 窗口/首选项/ Java /已安装的JRE ...您应该指向JDK安装。
您需要更改jdk中jre的路径。对于%Program Files%\ Java \ jdk1.6.0_25 \ jre
答案 2 :(得分:2)
java.home变量可以从项目pom.xml进一步派生。仔细检查你的maven编译器插件参考。我有同样的问题,在尝试构建时,关于它抱怨它无法找到javac。我的java.home,JAVA_HOME都设置正确。
对我来说原来是FIX更正了pom.xml我最终做了以下更改:
<!-- Original Version of compiler plugin reference -->
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>${default.java.version}</source>
<target>${default.java.version}</target>
<showDeprecation>false</showDeprecation>
<executable>${default.java.home}/bin/javac</executable>
<compilerVersion>${default.java.version}</compilerVersion>
<fork>true</fork>
</configuration>
<!-- MODIFIED Version of compiler plugin reference -->
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<!-- SPECIFY A DISCRETE VERSION!! Do not let it derive it! -->
<source>1.6</source>
<target>1.6</target>
<!--
<showDeprecation>false</showDeprecation>
<executable>${default.java.home}/bin/javac</executable>
<compilerVersion>${default.java.version}</compilerVersion>
<fork>true</fork>
-->
</configuration>
答案 3 :(得分:1)
此问题也出现在Intellij IDEA(IDEA 11.x~Windows 7~Java 7)中。指定systempath属性引用了IDEA jre ...
一个稳定的解决方案是在$ HOME / .m2 / settings.xml
下创建一个本地maven配置文件<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>NUMERIC_VERSION</jdk>
</activation>
<properties>
<java.home>
<!-- ABSOLUTE_PATH_HERE -->
</java.home>
</properties>
</profile>
</profiles>
答案 4 :(得分:1)
只是为了更改窗口首选项的答案添加更多信息。我已将 JRE 位置设为C:\Program Files\Java\jre7
,因为这似乎是显而易见的选择。
但是,这是一个失败。指出的正确答案是C:\Program Files\Java\jdk1.7.0_10\jre
。我指出这是因为它很容易犯错误。
答案 5 :(得分:1)
今天有同样的问题。事实证明,我特别需要在路径中使用“Program Files”,尽管这个Windows安装(因此文件夹的名称)是德语。
这不是第一次发生这种事情。
因此,如果您确定路径正确,请尝试“程序文件”而不是本地化的替代方案。为我工作。
答案 6 :(得分:0)
编写,编译和打包java程序需要一个JDK,因为必要的工具只与JDK(Java Development Kit)一起发布。只有运行java程序才需要JRE(Java运行时环境)。
答案 7 :(得分:0)
在不弄乱JAVA_HOME env变量的情况下,以下是我能够解决的问题。
安装1.6.x jdk。
在已安装的JRE下的Eclipse / Preferences中,为JDK添加一个条目并使其成为默认条目(将位置设置为JDK文件夹,例如,C:\ Program Files \ Java \ jdk1.6.0_34
编辑属性并将JDK_HOME / lib / tools.jar添加到系统库列表中。
或者,假设安装了jdk,您可以将JDK / lib / tools.jar添加到现有默认JRE的系统库列表中
答案 8 :(得分:0)
我在键入java -version
时能够在命令提示符下看到相应的响应,但在键入mvn -version
时遇到此错误。
就我而言,这是一个愚蠢的错误。这些天JAVA_HOME
环境变量指向..\jdk\bin
文件夹并导致了问题。从JAVA_HOME
变量的值中删除bin后,我可以使用Maven。
注意:系统变量路径应包含指向JDK的bin文件夹的值。
此致 Balaji.K
答案 9 :(得分:0)
配置JAVA环境变量的正确方法是: -
JAVA_HOME是“java.exe”的位置,需要来自JRE \ bin文件夹。 PATH是查找需要来自JDK \ bin文件夹的javac.exe。
这也确保JDK和JRE兼容
答案 10 :(得分:0)
要让Maven运行 - 您需要配置环境变量JAVA_HOME以指向JDK
e.g。 JAVA_HOME = C:\ Program Files \ Java \ jdk1.7.0_25
您还需要PATH环境变量中包含的C:\ Program Files \ Java \ jdk1.7.0_25 \ bin。
此致 DIPAN
答案 11 :(得分:0)
我遇到过类似问题,以下问题解决了这个问题:
JAVA_HOME = C:\Program Files\java\jdk
M2_HOME= C:\Program Files\apache-maven
inside path = ....%JAVA_HOME%\bin;%M2_HOME%\bin;
这解决了这个问题。
答案 12 :(得分:0)
我有类似的问题,答案很简单;
maven找不到JAVA_HOME可变,直到我意识到,我把Java路径写入了我的路径变量。 所以我的“错误:在你的环境中找不到JAVA_HOME ......”的答案是使用Name JAVA_HOME创建一个新变量。也许这对傻瓜来说是失败的,但我花了一个小时才意识到......
答案 13 :(得分:0)
您还应该确保Java库位于项目的类路径中。导航到项目的属性 - &gt; java build path-&gt; libraries选项卡。检查是否列出了jdk库。如果没有添加它。这也可能是导致此类错误的原因。
答案 14 :(得分:0)
在我的命令行Maven项目的Java自动更新(在Windows 7上)之后我遇到了这个问题(与Eclipse中的maven版本不同)。 JRE自动更新删除了我的系统JAVA_HOME环境变量指向的JDK下的jre文件夹。由于没有找到jre,maven违反了新安装的JRE(仍然没有想到如何)。我恢复了JDK目录下的jre文件夹并删除了对C:\ ProgramData \ Oracle \ Java \ javapath的引用,该引用已添加到系统Path变量的开头,并且maven构建恢复正常。