Cygwin运行错误版本的java
我和Cygwin有这个问题。我已经安装了Java1.6和1.7。我想在Java1.7中使用maven 3.0.4,但不想卸载Java1.6。我的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
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安装文档,
包装器脚本应该在(Cygwin)shell中使用mvn
环境变量来决定使用哪个JAVA$JAVA\u HOME
- 找出真正发生了什么的方法是查看包装器脚本,看看它们实际上在做什么。如果读取脚本太难,尝试“黑客”脚本以包括
。这将告诉您正在读取脚本的哪些行,以及正在执行哪些命令set-vx
- 最后,POM文件可以影响构建的源和目标级别。。。独立于运行构建的JVM
echo$PATH
的输出是什么?您还可以使用unix/cygwin中的哪个java
命令检查运行的是什么java二进制文件。$PATH和$java\u HOME参考java 7目录,但java-版本显示为java 1.6