Maven 2 JAVA_HOME和maven依赖关系的奇怪问题
我将JAVA_HOME变量设置为Maven 2 JAVA_HOME和maven依赖关系的奇怪问题,maven-2,java-home,Maven 2,Java Home,我将JAVA_HOME变量设置为C:\Program Files\JAVA\jre6\当我在项目上运行maven包时,它告诉我它无法解析依赖关系 [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
C:\Program Files\JAVA\jre6\
当我在项目上运行maven包时,它告诉我它无法解析依赖关系
[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使用了这种依赖关系
[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看起来像
C:\Program Files\JAVA\jre6\bin\
,但是maven没有运行,它告诉我我的JAVA_HOME路径是错误的你需要一个JAVA JDK而不仅仅是一个JRE。你可以一点一个
编辑:
从:
${java.home}指定当前JRE_主环境的路径,使用相对路径获取,例如:
${java.home}../bin/java.exe
以JDK为例,在
c:\JDK
中,maven${java.home}指向c:\JDK\jre
编写、编译和打包java程序,需要JDK,因为所需的工具仅与JDK(java开发工具包)一起分发。JRE(Java运行时环境)仅用于运行Java程序。Java.home变量可以从项目pom.xml中进一步派生。仔细检查maven编译器插件参考。我在尝试构建时也遇到了同样的问题,抱怨它找不到javac。我的java.home、java\u home都设置正确
对我来说,最终的解决办法是纠正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>
maven编译器插件
2.0.2
${default.java.version}
${default.java.version}
假的
${default.java.home}/bin/javac
${default.java.version}
真的
maven编译器插件
2.0.2
1.6
1.6
我也发现这一点帮助了我
。。。
使用Eclipse,您需要验证已安装的JRE是否使用JDK安装
这意味着在配置选项中。。。
窗口/首选项/Java/已安装的JRE
…您应该指向JDK安装
您需要在jdk中更改jre的路径。对于%Program Files%\Java\jdk1.6.0\u 25\jre而言,在不干扰Java\u HOME env变量的情况下,我可以通过以下方式修复它 安装1.6.x jdk 在Eclipse/Preferences中的installed JRE下,为JDK添加一个条目并将其设置为默认值(将位置设置为JDK文件夹,例如C:\Program Files\Java\jdk1.6.0\U 34) 编辑属性并将JDK_HOME/lib/tools.jar添加到系统库列表中
或者,假设安装了jdk,您可以将jdk/lib/tools.jar添加到现有默认JRE的系统库列表中这个问题也出现在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>
发展
真的
数字版本
只是为了在回答中添加更多关于更改窗口首选项的信息。我将JRE位置设置为C:\Program Files\Java\jre7
,因为这似乎是一个明显的选择
然而,这是一个失败。指出的正确答案是
C:\ProgramFiles\Java\jdk1.7.0\u 10\jre
。我指出这一点是因为它很容易出错。在键入Java-version
时,我能够在命令提示符中看到相应的响应,但在键入mvn-version
时出现此错误
在我的例子中,这是一个愚蠢的错误。JAVA\u HOME
环境变量一直指向。\jdk\bin
文件夹,这导致了问题。从JAVA\u HOME
变量的值中删除bin后,我可以使用Maven
注意:系统变量path应该包含指向JDK的bin文件夹的值
问候,,
Balaji.K配置JAVA环境变量的正确方法是:-
这也确保了JDK和JRE是兼容的以便Maven运行-您需要配置一个环境变量JAVA_HOME来指向JDK e、 g.JAVA\u HOME=C:\Program Files\JAVA\jdk1.7.0\u 25 此外,还需要PATH环境变量中包含的C:\Program Files\Java\jdk1.7.0\U 25\bin 问候,,
Dipan今天也有同样的问题。结果证明我特别需要在路径中使用“程序文件”,尽管这个windows安装(以及文件夹的名称)是德语的 这种事情也不是第一次发生了
因此,如果您确定路径正确,请尝试使用“程序文件”而不是本地化的替代方案。对我有效。我遇到过类似问题,以下解决了问题:
JAVA_HOME = C:\Program Files\java\jdk
M2_HOME= C:\Program Files\apache-maven
inside path = ....%JAVA_HOME%\bin;%M2_HOME%\bin;
这就解决了问题。我也遇到过类似的问题,答案很简单 maven无法找到JAVA_HOME变量,直到我意识到,我将JAVA路径写入了path变量。
所以我的“错误:在您的环境中找不到JAVA_HOME…”的答案是创建一个名为JAVA_HOME的新变量。对于傻瓜来说,这可能是个失败,但我花了一个小时才意识到…您还应该确保JAVA库位于项目的类路径上。导航到项目的属性->JAVA构建路径->库选项卡。检查是否列出了jdk库。如果没有,请添加它