且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

与更新我的Mac最新的Java JDK困难

更新时间:2022-10-14 23:30:47

看起来这应该是正确的:

 出口JAVA_HOME = /图书馆/的Java / JavaVirtualMachines / jdk1.8.0_60.jdk /内容/首页

Ant将尝试使用文件 $ JAVA_HOME /斌/ java的。如果不存在,那么 JAVA_HOME 是不正确的,就这么简单。
例如,如果你的的Java 可执行程序位于 /路径/到/不管/斌/ java的,那么 JAVA_HOME /路径/到/不管

[2015-10-12 12:51]

Running...

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

And running...

mlittle-mbook1:bin mlittle$ export   JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

I set java_home to: JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

I have just noticed that Apache Ant is looking in the wrong path, with an additional ‘/'

And according to your email

" Ant will try to use the file $JAVA_HOME/bin/java. If that doesn't exist, then > JAVA_HOME is not correct, it's that simple. If for example your java executable > is at /path/to/whatever/bin/java, then JAVA_HOME should be /path/to/whatever."

or… $JAVA_HOME/bin/java

but the error message indicates that it is looking in the path..

$JAVA_HOME//bin/java

Notice the ‘//‘ instead of ‘/‘: how to correct this?

Or is there an ‘ant’ command, where I can force it to look in the correct path?

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

[2015-10-12: 1204]

Thank you, you have resolved one issue for me, I understand that /java is an executable in the path $java_home/bin/java, not a folder As for $JAVA_HOME/bin/java -version, I got the following...

mlittle-mbook1:~ mlittle$ /usr/libexec/java_home -v
java_home: option requires an argument -- v
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
mlittle-mbook1:~ mlittle$ which java
/usr/bin/java

Now re-running ant to attempt to build the hybris instance...

mlittle-mbook1:~ mlittle$ cd 00hybris/hybris/bin/platform
mlittle-mbook1:platform mlittle$ pwd
/Users/mlittle/00hybris/hybris/bin/platform
mlittle-mbook1:platform mlittle$ . ./setantenv.sh
mlittle-mbook1:platform mlittle$ ant clean all
Error: JAVA_HOME is not defined correctly.
We cannot execute   /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home//bin/java

As you can see, I am still having problems with 'ant' despite having what now appears the correct $java_home location.

=======

=======

[2015-10-11-23:20] FURTHER INVESTIGATION

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:platform mlittle$ ant clean all
 Error: JAVA_HOME is not defined correctly.
   We cannot execute   /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home//bin/java
mlittle-mbook1:platform mlittle$* 

== INITIAL INVESTIGATION

I seem to have a problem with my Java installation on my MacBook, as this relates to the installation of a java based eCommerce platform [ Difficulties with installation script for hybris 5.6.02 ] and the use of Apache Ant...

  1. Regarding my MacBook.. System Software Overview:

System Version: OS X 10.10.5 (14F27)
Kernel Version: Darwin 14.5.0
Boot Volume: Macintosh HD
Boot Mode: Normal
Computer Name: mlittle-mbook1
User Name: mlittle-mbook1 (mlittle)
Secure Virtual Memory: Enabled
Time since boot: 1 day5:34

=========

1. Checked which java…

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

2. Recheck which Java..

mlittle-mbook1:~ mlittle$ ls -l `which java`
lrwxr-xr-x  1 root  wheel  74  5 Nov  2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

3. I then downloaded the JDK version 8, update 60, and so in the path:

/Library/Java/Java?JavaVirtualMachines

Previously it had..

/jdk1.7.0_21.jdk

Now It has

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

This is confusing, I was expecting that it would replace /jdk1.7.0_21.jdk with /jdk1.8.0_60.jdk

4. I check the version of 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)

It was still indicating java version "1.7.0_21"???

And so I renamed /jdk1.7.0_21.jdk to /old-jdk1.7.0_21.jdk

4. I again check the version of java, and then I got…

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)

5. Which should be the correct version of Java for Hybris5.6.0.2 [this the java based eCommerce platform that I am trying to install] by setting the ANT environment variables, and commence the build process [ant clean all]… but…

mlittle-mbook1:platform mlittle$ . ./setantenv.sh


 Tried to ant clean all.. and got an error message relating to JAVA_HOME

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


 
6. Again checked the java path…

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

7. I tried to change the Java_home path and then re-run 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. Again checked "which 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.I tried to change the Java_home, reran Ant, but still got an error message..

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

10. 9.I tried to change the Java_home, reran Ant, but still got an error message..

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. Again checked which java

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

I am confused, clearly I do not have my java set home variables set up properly: any suggestions?

Looks like this should be the correct one:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

Ant will try to use the file $JAVA_HOME/bin/java. If that doesn't exist, then JAVA_HOME is not correct, it's that simple. If for example your java executable is at /path/to/whatever/bin/java, then JAVA_HOME should be /path/to/whatever.