Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cygwin运行错误版本的java_Java_Cygwin - Fatal编程技术网

Cygwin运行错误版本的java

Cygwin运行错误版本的java,java,cygwin,Java,Cygwin,我和Cygwin有这个问题。我已经安装了Java1.6和1.7。我想在Java1.7中使用maven 3.0.4,但不想卸载Java1.6。我的JAVA_家看起来像: C:\Program Files\Java\jdk1.7.0_09 当我跑的时候 java版本 在Cygwin,我得到: java version "1.6.0_29" Java(TM) SE Runtime Environment (build 1.6.0_29-b11) Java HotSpot(TM) 64-Bit Ser

我和Cygwin有这个问题。我已经安装了Java1.6和1.7。我想在Java1.7中使用maven 3.0.4,但不想卸载Java1.6。我的JAVA_家看起来像:

C:\Program Files\Java\jdk1.7.0_09
当我跑的时候 java版本 在Cygwin,我得到:

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)
当我在cmd.exe中运行相同的命令时,我得到:

java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

有人知道如何解决这个问题吗?

这里有两个独立的问题


第一个问题是为什么
java-version
会在Cygwin和经典的Windows命令解释器上发现不同的java安装

答案很可能是您的Cygwin和Windows环境分别具有不同的
$PATH
%PATH%
值。如果您想在Cygwin上运行java 7,需要确保Cygwin的
java-version
包含java 7 bin目录。。。使用适当的语法


第二个问题是如何在Cygwin下获得
mvn
命令以使用Java7

答案并不那么直截了当:

  • 设置
    $PATH
    可能会解决您的问题

  • 根据Maven安装文档,
    mvn
    包装器脚本应该在(Cygwin)shell中使用
    $JAVA\u HOME
    环境变量来决定使用哪个JAVA

  • 找出真正发生了什么的方法是查看包装器脚本,看看它们实际上在做什么。如果读取脚本太难,尝试“黑客”脚本以包括
    set-vx
    。这将告诉您正在读取脚本的哪些行,以及正在执行哪些命令

  • 最后,POM文件可以影响构建的源和目标级别。。。独立于运行构建的JVM


cygwin中的
echo$PATH
的输出是什么?您还可以使用unix/cygwin中的
哪个java
命令检查运行的是什么java二进制文件。$PATH和$java\u HOME参考java 7目录,但java-版本显示为java 1.6