JDK 9 images are now modular with JDK 9 Early Access build 41

Ben Evans benjamin.john.evans at gmail.com
Tue Dec 9 11:48:07 UTC 2014


Hi,

I've been working with JDK 9 EA b40. Here are my notes (all of this is
on Mac OS Mavericks 10.9.5).

Rory, can you confirm if any of this has been fixed in b41?
Particularly the overwriting of settings, as this one is basically a
showstopper for running hack days involving Mac users IMO.

1) Upgrade via .dmg overwrote all Java settings, rather than adding.
This basically broke every installed Java app on my system.
  - How to undo? There's no obvious way.
  - For users who have multiple Java versions installed, this slash &
burn approach is not good.

For reference, here's how I have my machines configured:

boxcat$ ls -l /Library/Java/JavaVirtualMachines/
total 24
lrwxr-xr-x  1 root  wheel   15 24 Nov 22:31 java7 -> jdk1.7.0_71.jdk
lrwxr-xr-x  1 root  wheel   15 14 Nov 22:03 java8 -> jdk1.8.0_25.jdk
lrwxr-xr-x  1 root  wheel   12  4 Dec 16:03 java9 -> jdk1.9.0.jdk
drwxr-xr-x  3 root  wheel  102 14 Nov 20:24 jdk1.7.0_71.jdk
drwxr-xr-x  4 root  wheel  136 14 Nov 22:03 jdk1.8.0_05.jdk
drwxr-xr-x  3 root  wheel  102 14 Nov 22:02 jdk1.8.0_25.jdk
drwxr-xr-x  3 root  wheel  102  1 Dec 19:09 jdk1.9.0.jdk

I then use lines like this in .bash_profile to control which Java I start:

boxcat$ cat ~/.bash_profile
#JAVA_HOME=/Library/Java/JavaVirtualMachines/java9/Contents/Home
JAVA_HOME=/Library/Java/JavaVirtualMachines/java8/Contents/Home
#JAVA_HOME=/Library/Java/JavaVirtualMachines/java7/Contents/Home

M2_HOME=/opt/maven
MONGO_HOME=/opt/mongodb
ATLAS_HOME=/opt/atlassian-plugin-sdk

EDITOR=vi

PATH=$JAVA_HOME/bin:$M2_HOME/bin:$ATLAS_HOME/bin:$MONGO_HOME/bin:$PATH

export EDITOR JAVA_HOME M2_HOME ATLAS_HOME

It would be great if the .dmg installer was able to respect JAVA_HOME

Moving on, I then hit some other snags:

* NetBeans doesn't work out of the box - due to MaxPermSize & MaxSize
options being fatal errors in 9

* After editing the NB start script to remove those switches, NB will
start, but is basically useless as an IDE, as it can't find java.lang
- presumably b/c it's expecting rt.jat

* Something has also broken C&P in this configuration - can't copy
text out of NB properly

Will continue to explore & report back.

Thanks,

Ben

On Tue, Dec 9, 2014 at 8:42 AM, Rory O'Donnell <rory.odonnell at oracle.com> wrote:
>
> Hi All,
>
> The initial changesets for JEP 220: Modular Run-Time Images [1] are
> available
> with JDK 9 early-access build 41 [2].
>
> To summarize (please see the JEP for details):
>
>     - The "jre" subdirectory is no longer present in JDK images.
>
>     - The user-editable configuration files in the "lib" subdirectory
>        have been moved to the new "conf" directory.
>
>     - The endorsed-standards override mechanism has been removed.
>
>     - The extension mechanism has been removed.
>
>     - rt.jar, tools.jar, and dt.jar have been removed.
>
>     - A new URI scheme for naming stored modules, classes, and resources
>        has been defined.
>
>     - For tools that previously accessed rt.jar directly, a built-in NIO
>        file-system provider has been defined to provide access to the class
>        and resource files within a run-time image.
>
> More details are available at Mark Reinhold's latest blog entry [3]
>
> Rgds, Rory
>
> [1] http://openjdk.java.net/jeps/220
> [2] https://jdk9.java.net/download/
> [3] http://mreinhold.org/blog/jigsaw-modular-images
>
>
>
> --
> Rgds,Rory O'Donnell
> Quality Engineering Manager
> Oracle EMEA , Dublin, Ireland
>


More information about the adoption-discuss mailing list