tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: tomcat-native 1.1.22 doesn't find JDK on OS X 10.6.8 Snow Leopard
Date Mon, 27 Feb 2012 03:27:35 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Charlie,

On 2/26/12 10:07 PM, Charlie O'Keefe wrote:
> $cd native; ./configure --with-apr=`apr-1-config --prefix` checking
> build system type... x86_64-apple-darwin10.8.0 checking host system
> type... x86_64-apple-darwin10.8.0 checking target system type...
> x86_64-apple-darwin10.8.0 checking for a BSD-compatible install...
> /usr/bin/install -c checking for working mkdir -p... yes Tomcat
> Native Version: 1.1.22 checking for chosen layout... tcnative 
> checking for APR... yes setting CC to "gcc" setting CPP to "gcc
> -E" checking for a BSD-compatible install... /usr/bin/install -c 
> configure: error: can't locate a valid JDK location checking for
> JDK location (please wait)... checking Try to guess JDK 
> location...
> 
> Strange, why can't it locate a JDK?

Are you sure you have one installed? Maybe you just have a JRE.

You might need a package you didn't need in the past:
https://discussions.apple.com/thread/2630649?start=0&tstart=0

> The loop in that code which is trying a bunch of guesses will
> eventually get to the following combination of values:
> 
> JAVA_PREFIX =
> /System/Library/Frameworks/JavaVM.framework/Versions/ JAVA_PLATFORM
> = 6 subversion = .0 VARIANT = ""
> 
> Line 127 constructs a guess: 
> GUESS="${JAVA_PREFIX}/${VARIANT}1.${JAVA_PLATFORM}${subversion}"
> 
> For the above combination, that guess will be: 
> /System/Library/Frameworks/JavaVM.framework/Versions//1.6.0
> 
> On my machine running OS X 10.6.8 (Snow Leopard), here's what that
> path resolves to:
> 
> $ ls -l
> /System/Library/Frameworks/JavaVM.framework/Versions//1.6.0 
> lrwxr-xr-x  1 root  wheel  10 Nov 21 08:42 
> /System/Library/Frameworks/JavaVM.framework/Versions//1.6.0 ->
> CurrentJDK
> 
> Following the symlink:
> 
> $ ls -l
> /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK 
> lrwxr-xr-x  1 root  wheel  59 Nov 21 08:42 
> /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> 
> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
> 
> Following the second symlink:
> 
> $ ls -l
> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents total
> 0 drwxr-xr-x  12 root  wheel   408 Nov 21 08:43 Classes drwxr-xr-x
> 41 root  wheel  1394 Nov 21 08:43 Commands drwxr-xr-x   7 root
> wheel   238 Nov 21 08:43 Home -rw-r--r--   1 root  wheel  1963 Nov
> 1 12:05 Info.plist drwxr-xr-x  50 root  wheel  1700 Nov 21 08:43
> Libraries drwxr-xr-x   3 root  wheel   102 Nov 21 08:43 MacOS 
> drwxr-xr-x  21 root  wheel   714 Nov 21 08:43 Resources -rw-r--r--
> 1 root  wheel   454 Nov  1 12:08 version.plist

This is what I have in my Lion environment, too.

> So there is a directory here with some useful JDK-type things in
> it. The Home subdirectory here does look like something that would
> be universally recognized as a JAVA_HOME:
> 
> $ ls -l
> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/ 
> total 16 drwxr-xr-x  41 root  wheel  1394 Nov 21 08:43 bin 
> lrwxr-xr-x   1 root  wheel     3 Nov 21 08:42 bundle -> ../ 
> lrwxr-xr-x   1 root  wheel    51 Nov 21 08:42 include -> 
> /System/Library/Frameworks/JavaVM.framework/Headers drwxr-xr-x  42
> root  wheel  1428 Nov 21 08:43 lib drwxr-xr-x  41 root  wheel  1394
> Nov  1 12:03 man

I've got all that except for no "include" symlink. The target
directory in your 'ls' listing doesn't contain a 'Headers' directory,
which is probably why I don't have the symlink at all.

> $ ls -l 
> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/
> | grep java -rwxr-xr-x  1 root  wheel  100560 Nov  1 12:03 java 
> -rwxr-xr-x  1 root  wheel  100560 Nov  1 12:03 javac -rwxr-xr-x  1
> root  wheel  100560 Nov  1 12:03 javadoc -rwxr-xr-x  1 root  wheel
> 100560 Nov  1 12:03 javah -rwxr-xr-x  1 root  wheel  100560 Nov  1
> 12:03 javap lrwxr-xr-x  1 root  wheel      67 Nov 21 08:42 javaws
> -> 
> /System/Library/Java/Support/Deploy.bundle/Contents/Home/bin/javaws
>
>  At the point it isn't clear to me which directory we actually
> want. This script checks for some directories that look like
> they're apple-named:

You want the one with the header files in it. :)

> However, this code as written will not check that location.
> 
> There seem to be a few ways this could be patched to find a valid
> JDK location. May main question is, which is most preferable? My
> guess is that if JAVA_HOME has not been set, in this particular
> situation we probably want it to land on
> /System/Library/Frameworks/JavaVM.framework

Best thing to do on Mac OS X is this:

JAVA_HOME=`/usr/libexec/java_home`

I still think you need to install another package, though.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9K+CcACgkQ9CaO5/Lv0PAxjgCfVsTN3WmI6NJzELdspLz/1vRY
vH8AnAp6PitnDmgTtJ9s0SKf1UZ9D3ZK
=EOjs
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message