将Mac更新为最新Java JDK的困难

将Mac更新为最新Java JDK的困难,java,ant,Java,Ant,[2015-10-12 12:51] 运行 和运行 我将java_home设置为: JAVA_HOME=/Library/JAVA/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/HOME 我刚刚注意到ApacheAnt正在寻找错误的路径,带有一个额外的“/” 根据你的电子邮件 Ant将尝试使用文件$JAVA\u HOME/bin/JAVA。如果不存在,则>JAVA\u HOME不正确,就是这么简单。例如,如果您的JAVA可执行文件>位于/path/to

[2015-10-12 12:51]

运行

和运行

我将java_home设置为: JAVA_HOME=/Library/JAVA/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/HOME

我刚刚注意到ApacheAnt正在寻找错误的路径,带有一个额外的“/”

根据你的电子邮件

Ant将尝试使用文件$JAVA\u HOME/bin/JAVA。如果不存在,则>JAVA\u HOME不正确,就是这么简单。例如,如果您的JAVA可执行文件>位于/path/to/whatever/bin/JAVA,则JAVA\u HOME应为/path/to/whatever

或者… $JAVA_HOME/bin/JAVA

但错误消息表明它正在查看路径

注意“//”而不是“/”:如何更正此问题?

mlittle-mbook1:~ mlittle$ java -version
java version "1.7.0_21"
mlittle-mbook1:~ mlittle$ java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b12)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
还是有一个“ant”命令,我可以强制它寻找正确的路径

===================

[2015-10-12:1204]

谢谢,您为我解决了一个问题,我知道/java是路径$java_home/bin/java中的可执行文件,而不是文件夹 至于$JAVA_HOME/bin/JAVA-version, 我得到了以下信息

现在重新运行ant尝试构建hybris实例

正如您所看到的,尽管现在显示的$java_主位置正确,但我仍然在使用“ant”时遇到问题

======= =======

[2015-10-11-23:20] 进一步调查

mlittle-mbook1:Users mlittle$ cd   
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

mlittle-mbook1:Home mlittle$ pwd
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

mlittle-mbook1:Home mlittle$ ls -a
.                   README.html             db                  lib
..                  THIRDPARTYLICENSEREADME-JAVAFX.txt  include         man
COPYRIGHT               THIRDPARTYLICENSEREADME.txt     javafx-src.zip release
LICENSE                 bin                 jre                 src.zip

mlittle-mbook1:Home mlittle$ cd bin

mlittle-mbook1:bin mlittle$ ls -a
.       jar     javafxpackager  jconsole    jjs     jsadebugd   keytool rmic servertool xjc
 ..     jarsigner   javah       jdb     jmap        jstack      native2ascii    rmid        tnameserv
appletviewer    java        javap       jdeps       jmc     jstat       orbd        rmiregistry unpack200
extcheck    javac       javapackager    jhat        jps     jstatd      pack200     schemagen   wsgen
idlj        javadoc     jcmd        jinfo       jrunscript  jvisualvm   policytool  serialver   wsimport

mlittle-mbook1:bin mlittle$ which java
/usr/bin/java
mlittle-mbook1:bin mlittle$ export    JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
mlittle-mbook1:bin mlittle$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
mlittle-mbook1:bin mlittle$ 
====

== 初步调查

mlittle-mbook1:Users mlittle$ cd   
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

mlittle-mbook1:Home mlittle$ pwd
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

mlittle-mbook1:Home mlittle$ ls -a
.                   README.html             db                  lib
..                  THIRDPARTYLICENSEREADME-JAVAFX.txt  include         man
COPYRIGHT               THIRDPARTYLICENSEREADME.txt     javafx-src.zip release
LICENSE                 bin                 jre                 src.zip

mlittle-mbook1:Home mlittle$ cd bin

mlittle-mbook1:bin mlittle$ ls -a
.       jar     javafxpackager  jconsole    jjs     jsadebugd   keytool rmic servertool xjc
 ..     jarsigner   javah       jdb     jmap        jstack      native2ascii    rmid        tnameserv
appletviewer    java        javap       jdeps       jmc     jstat       orbd        rmiregistry unpack200
extcheck    javac       javapackager    jhat        jps     jstatd      pack200     schemagen   wsgen
idlj        javadoc     jcmd        jinfo       jrunscript  jvisualvm   policytool  serialver   wsimport

mlittle-mbook1:bin mlittle$ which java
/usr/bin/java
mlittle-mbook1:bin mlittle$ export    JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
mlittle-mbook1:bin mlittle$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
mlittle-mbook1:bin mlittle$ 
我在MacBook上的Java安装似乎有问题,因为这涉及到基于Java的电子商务平台[]的安装和ApacheAnt的使用

  • 关于我的MacBook。。 系统软件概述:
  • 系统版本:OS X 10.10.5(14F27)
    内核版本:达尔文14.5.0
    启动卷:Macintosh HD
    启动模式:正常
    计算机名称:mlittle-mbook1
    用户名:mlittle-mbook1(mlittle)
    安全虚拟内存:已启用
    启动后的时间:1天5:34

    =========

    1。检查了哪个java…

    mlittle-mbook1:~ mlittle$ which java
    /usr/bin/java
    
    mlittle-mbook1:~ mlittle$ java -version
    java version "1.8.0_60"
    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
    
    mlittle-mbook1:platform mlittle$ . ./setantenv.sh
    
    mlittle-mbook1:platform mlittle$ which java
    /usr/bin/java
    
    2。重新检查哪个Java..

    mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/
    mlittle-mbook1:platform mlittle$ ant clean all
    Error: JAVA_HOME is not defined correctly.
      We cannot execute /Library/Java/JavaVirtualMachines//bin/java
    
    mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin
    mlittle-mbook1:platform mlittle$ ant clean all
    Error: JAVA_HOME is not defined correctly.
      We cannot execute /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/bin/java
    

    3。然后我下载了JDK版本8、更新60,路径如下:

    /Library/Java/Java?Java虚拟机

    以前是

    /jdk1.7.0_21.jdk

    现在有了

    /jdk1.7.0_21.jdk
    /jdk1.8.0_60.jdk

    这令人困惑,我原以为它会取代/jdk1.7.0_21.jdk 使用/jdk1.8.0_60.jdk

    4。我检查java的版本。

    mlittle-mbook1:~ mlittle$ java -version
    java version "1.7.0_21"
    mlittle-mbook1:~ mlittle$ java -version
    java version "1.7.0_21"
    Java(TM) SE Runtime Environment (build 1.7.0_21-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
    
    它仍然指示java版本“1.7.0_21”

    因此我将/jdk1.7.0_21.jdk重命名为/old-jdk1.7.0_21.jdk

    4.我再次检查java的版本,然后得到…

    mlittle-mbook1:~ mlittle$ which java
    /usr/bin/java
    
    mlittle-mbook1:~ mlittle$ java -version
    java version "1.8.0_60"
    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
    
    mlittle-mbook1:platform mlittle$ . ./setantenv.sh
    
    mlittle-mbook1:platform mlittle$ which java
    /usr/bin/java
    
    5.通过设置ANT环境变量,并开始构建过程[ANT clean all]…哪个版本应该是适用于Hybris5.6.0.2[这是我尝试安装的基于Java的电子商务平台]的Java的正确版本

    mlittle-mbook1:~ mlittle$ which java
    /usr/bin/java
    
    mlittle-mbook1:~ mlittle$ java -version
    java version "1.8.0_60"
    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
    
    mlittle-mbook1:platform mlittle$ . ./setantenv.sh
    
    mlittle-mbook1:platform mlittle$ which java
    /usr/bin/java
    
    
 试图清除所有..并收到与JAVA_HOME相关的错误消息

    
 
6。再次检查java路径…

    mlittle-mbook1:~ mlittle$ which java
    /usr/bin/java
    
    mlittle-mbook1:~ mlittle$ java -version
    java version "1.8.0_60"
    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
    
    mlittle-mbook1:platform mlittle$ . ./setantenv.sh
    
    mlittle-mbook1:platform mlittle$ which java
    /usr/bin/java
    

    7。我试图更改Java_主路径,然后重新运行ANT。

    mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/Home
    mlittle-mbook1:platform mlittle$ ant clean all
    Error: JAVA_HOME is not defined correctly.
      We cannot execute /Library/Java/Home/bin/java
    
    
 
8。再次选中“哪个Java”

    mlittle-mbook1:platform mlittle$ which java
    /usr/bin/java
    mlittle-mbook1:platform mlittle$ $JAVA_HOME/bin/java -version
    -bash: /Library/Java/Home/bin/java: No such file or directory
    
    9.我试图更改Java_主页,重新运行Ant,但仍然收到错误消息。

    mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/
    mlittle-mbook1:platform mlittle$ ant clean all
    Error: JAVA_HOME is not defined correctly.
      We cannot execute /Library/Java/JavaVirtualMachines//bin/java
    
    mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin
    mlittle-mbook1:platform mlittle$ ant clean all
    Error: JAVA_HOME is not defined correctly.
      We cannot execute /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/bin/java
    
    10.9.我试图更改Java_主页,重新运行Ant,但仍然收到一条错误消息。

    mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/
    mlittle-mbook1:platform mlittle$ ant clean all
    Error: JAVA_HOME is not defined correctly.
      We cannot execute /Library/Java/JavaVirtualMachines//bin/java
    
    mlittle-mbook1:platform mlittle$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin
    mlittle-mbook1:platform mlittle$ ant clean all
    Error: JAVA_HOME is not defined correctly.
      We cannot execute /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/bin/java
    
    11.再次检查哪个java

    mlittle-mbook1:platform mlittle$ which java
    /usr/bin/java
    

    我很困惑,显然我没有正确设置java设置主变量:有什么建议吗?

    看起来这应该是正确的:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
    
    Ant将尝试使用文件
    $JAVA\u HOME/bin/JAVA
    。如果不存在该文件,则
    JAVA\u HOME
    不正确,就是这么简单。
    例如,如果您的
    java
    可执行文件位于
    /path/to/whatever/bin/java
    ,那么
    java\u HOME
    应该是
    /path/to/whatever

    您好,您是对的,它正在$java\u HOME/bin/java中查找可执行文件,而$java\u HOME现在指向..java\u HOME=/Library/java/JavaVirtualMachines/jdk1.8.0\u 60.jdk/Contents/Home,但真正的问题是从上面看,可执行文件都位于$JAVA_Home/bin/,但没有/JAVA子目录……我是否应该破解一个'/JAVA',然后将可执行文件从/bin复制到/bin/JAVA??否。
    /Library/JAVA/JavaVirtualMachines/jdk1.8.0\u 60。jdk/Contents/Home
    看起来是正确的。
    /Library/JAVA/JAVA>VirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/java
    是一个文件,而不是一个目录。这是可执行文件。此时,您的Ant应该可以工作,使用我的帖子中的
    java_Home
    值。您仍然会得到错误吗?如果是,请将输出以及
    $java_Home/bin/java-version
    的输出编辑到您的问题中>@FlashJackFromGundagai那么进展如何?谢谢你的帮助,我真的非常感谢你的帮助..我已经运行了$JAVA_HOME/bin/JAVA-version的输出,然后尝试运行'ant',但是它['ant']仍在给我一条错误消息…见上文…在您最后的输出中,在ant的错误消息中,您看到的是//,路径是JDK 7,而不是8。仔细看。顺便说一句,路径中有//一点问题都没有。您能澄清您的问题吗?您没有看到它真的很混乱,很难阅读吗?我们肯定能解决您的问题,但我们需要保持事实的清晰,以一种结构化、清晰的方式处理问题,一件一件地识别和消除每个子问题。这需要耐心和纪律。放慢脚步,后退一步,清晰思考