Maven 与 Cygwin - 错误:JAVA_HOME 未正确定义

发布于 2024-12-21 19:03:32 字数 745 浏览 1 评论 0原文

我正在尝试在 cygwin 上运行 Maven。我已将 Maven 添加到路径中,我的 Java 主目录如下所示:

$ echo $JAVA_HOME 
/cygdrive/c/Program Files/Java/jdk1.6.0

然而,当我尝试运行 mvn --version 时,我得到以下

Error: JAVA_HOME is not defined correctly.
  We cannot execute /cygdrive/c/Program Files/Java/jdk1.7.0_01/bin/java

信息: 知道为什么它不起作用吗? Java版本工作正常,所以这不是java的问题。我也尝试过jdk1.6.0。

运行 which java 给出,

$ which java
/cygdrive/c/windows/system32/java

并且 java -version 给出,

$ java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode, sharing)

I'm trying to run Maven on cygwin. I've added maven to the path and my Java home looks like this:

$ echo $JAVA_HOME 
/cygdrive/c/Program Files/Java/jdk1.6.0

Yet when I try to run mvn --version, I get this:

Error: JAVA_HOME is not defined correctly.
  We cannot execute /cygdrive/c/Program Files/Java/jdk1.7.0_01/bin/java

Any idea why it's not working? Java -version works fine, so it's not a problem with java. I've also tried jdk1.6.0 instead.

Running which java gives,

$ which java
/cygdrive/c/windows/system32/java

and java -version gives,

$ java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode, sharing)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

攒眉千度 2024-12-28 19:03:32

如果我运行 mvn.bat 而不是 mvn,则不会出现此问题。

因此,由于 Cygwin 将运行 mvn 文件,因此我用批处理文件的软链接 (ln -s mvn.bat mvn) 替换了该 mvn 文件。这样,运行 mvn 将默默地运行 mvn.bat 来优雅地处理这些问题。

If I run mvn.bat instead of mvn, I didn't have this problem.

So, since Cygwin will run the mvn file, I replaced this mvn file with a softlink (ln -s mvn.bat mvn) to the batch file. This way, running mvn will silently run the mvn.bat which handles these problems gracefully.

折戟 2024-12-28 19:03:32

任何使用 Cygwin 和 Maven 的人,这正是您所需要的:

在 Cygwin bash 提示符中:

$ vim ~/.bashrc

或:

$ nano ~/.bashrc

(您喜欢哪个...)

附加以下内容:

alias mvn=mvn.bat

保存并退出。然后运行:

$ source ~/.bashrc

现在您应该能够像在 cmd 提示符下一样使用 mvn 命令。

Anyone Using Cygwin and Maven, here's exactly what you need:

In your Cygwin bash prompt:

$ vim ~/.bashrc

or:

$ nano ~/.bashrc

(Which ever you fancy...)

Append the following:

alias mvn=mvn.bat

Save and Exit. Then run:

$ source ~/.bashrc

Now you should be able to use the mvn command as you do in cmd prompt.

清秋悲枫 2024-12-28 19:03:32

Cygwin 使用 dos 控制台来执行 Maven 构建 (mvn.bat)。

将 Java 主目录设置为 C:\Program Files\Java\jdk1.7.0_01 位置。

Cygwin uses a dos console to execute Maven builds (mvn.bat).

Set your Java home to the C:\Program Files\Java\jdk1.7.0_01 location.

自此以后,行同陌路 2024-12-28 19:03:32

我在从 cygwin 工具运行 gradle 时遇到了同样的问题。

我曾经将Java主目录设置为包含bin文件夹:

C:\Program Files\Java\jdk1.7.0_67\bin

但后来我意识到,如果包含bin文件夹,有些应用程序无法识别,所以我将类路径更改为C:\Program Files \Java\jdk1.7.0_67 它开始工作。

I was facing the same problem while running gradle from cygwin tool.

I used to set the Java home including the bin folder:

C:\Program Files\Java\jdk1.7.0_67\bin

But later I realized that some application do not recognize if you include bin folder, so I changed the class path to C:\Program Files\Java\jdk1.7.0_67 and it started working.

只为守护你 2024-12-28 19:03:32

JAVA_HOME 设置为 /cygdrive/c/Progra~1/Java/jdk1.6.0 可能会有所帮助。

Setting JAVA_HOME to /cygdrive/c/Progra~1/Java/jdk1.6.0 might help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文