# Differing JDK Dependencies for Ports



## bsd10 (Feb 6, 2011)

Some java ports have dependencies on different jdks, which creates kind of a problem in having to install/deinstall and register/unregister them to install and use different ports. Is there a way to force them all to use, for example, diablo-jdk16?


----------



## wblock@ (Feb 6, 2011)

Please show a specific example; otherwise it's hard to tell exactly what's going on.


----------



## bsd10 (Feb 6, 2011)

I believe it was that eclipse and eclipse-webtools require openjdk, but eclipse-webtools requires eclipse-emf, eclipse-gef, and eclipse-datatools, which require jdk16. Additionally, even though it is not a port, glassfishv3 needs diabo-jdk16, since the openjdk and jdk16 versions are too old.

diablo-jdk16 seems to work the best, so I'd like to use that for all of my ports if possible.


----------



## wblock@ (Feb 6, 2011)

diablo-jdk (there's a 15 and a 16) is a pre-built package thanks to the Foundation.  Usually they're not particularly new.  Both java/jdk16 and java/openjdk16 should be newer in the sense of more bugfixes.  I use jdk16, but openjdk16 seems more and more tempting every time that multi-page license agreement comes up.

/etc/make.conf could be used to override and set a global Java version and vendor.  Whether the various ports will still work correctly...

```
JAVA_VERSION=1.6
JAVA_VENDOR=openjdk
```


----------



## adamk (Feb 6, 2011)

I'm still not completely sure I understand the problem...  You can have multiple JDKs installed at the same time, after all, so why do you need to install/deinstall and register/unregister them constantly?

Adam


----------



## bsd10 (Feb 6, 2011)

On
	
	



```
% uname -a
FreeBSD 8.1-RELEASE-p2 amd64
```
I get this version for diablo-jdk16

```
% java -version
java version "1.6.0_07"
Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)
Diablo Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)
```
this for jdk16

```
% java -version
java version "1.6.0_03-p4"
Java(TM) SE Runtime Environment (build 1.6.0_03-p4-user_06_feb_2011_09_24-b00)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_03-p4-user_06_feb_2011_09_24-b00, mixed mode)
```
and this for openjdk6

```
% java -version
openjdk version "1.6.0"
OpenJDK Runtime Environment (build 1.6.0-b20)
OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode)
```

It seems that diablo-jdk16 is a newer version than jdk16, and glassfishv3 fails in a lot of cases with jdk16. I'm not sure what versioning convention openjdk6 uses, but it doesn't work with glassfishv3 either. diablo-jdk16 is the only one that works for me in all cases.

Eclipse will only start with openjdk6 registered, but glassfishv3 will only run correctly with diablo-jdk16. I could modify the startup scripts for each one, but it would be nice just to use diablo-jdk16 for everything, since I know there are no problems with it.


----------

