maven-2 - Windows 7 64 位上的 Maven 2.2.1

标签 maven-2 32bit-64bit java windows-7-x64

出于各种原因,我必须坚持使用旧版本的 Java (6) 和 Maven (2.2)。因此,考虑到这一点,我安装了 Maven 2.2.1而我的系统使用 64 位 JDK 6。

我试图通过运行 mvn --version 来验证它是否已正确安装,我收到的响应是:

ERROR: JAVA_HOME is set to an invalid directory.
JAVA_HOME = "C:\Windows:\Program Files\Java\jdk1.6.0_37"
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation

我怀疑 Maven 需要 32 位 版本的 Java 而它不能处理 64 位 Java。这是真的吗?

如果确实是这种情况,将 %JAVA_HOME% 环境变量设置为指向 32 位版本(已安装)不是我想做的因为它会导致我 PC 上安装的其他依赖它指向 64 位版本的工具失败。

有解决办法吗?

更新:通过在 maven.bat 中插入以下行(就在 === START VALIDATION === 之前)解决了问题:

set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_37

这样,%JAVA_HOME% 环境更改就本地化到 Maven,并且在外部不可见。

如果有更好的解决方案,我很乐意知道。

最佳答案

问题的根源一直在我眼前,但我没有看到:

%JAVA_HOME% 环境变量设置为 %SystemRoot%\Program Files (x86)\Java\jdk1.6.0_37 而不是 %SystemDrive%\Program Files (x86)\Java\jdk1.6.0_37.

修复后,无需修改 maven.bat

关于maven-2 - Windows 7 64 位上的 Maven 2.2.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13631789/

相关文章:

maven-2 - yuicompressor-maven-plugin 不受进程资源限制

c - 64位机器上什么时候64位指针只使用低32位?

java - 在 java 中将 long 转换为 string 并将 string 转换为 long

java - 如果我在异常上调用 getCause(),为什么我必须处理 Throwable

java - 如何同步线程

maven-2 - Maven : In the nar-plugin, 你能指定从哪里获取包含吗?

maven-2 - Maven 中的版本传播

java - 使用 Maven 创建 Wicket 项目

java - eclipse:更改用于运行 ant 的 jre

c++ - 在 64 位机器上使用静态链接库编译位置无关的可执行文件