This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 258461 - Update launchers to support JDK9/Jigsaw
Summary: Update launchers to support JDK9/Jigsaw
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Window System (show other bugs)
Version: 8.2
Hardware: PC All
: P1 normal (vote)
Assignee: Stanislav Aubrecht
URL:
Keywords: JDK_9
Depends on:
Blocks:
 
Reported: 2016-03-21 10:40 UTC by Martin Balin
Modified: 2018-12-26 05:15 UTC (History)
2 users (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Balin 2016-03-21 10:40:47 UTC
NetBeans launchers need to be extended to allow start also on JDK9/Jigsaw which requires special -XaddExports options which are platform specific. 

It should print some hint when launching NB 9 on JDK9 on some less common platform where some of the modules might be named differently. 

Launchers have to continue to work on JDK8/7 as of now.

Special options for launching on JDK9/Jigsaw are, when added to command line:
Linux:
-J-XaddExports:java.desktop/sun.awt=ALL-UNNAMED,java.base/jdk.internal.jrtfs=ALL-UNNAMED,java.desktop/java.awt.peer=ALL-UNNAMED,java.desktop/com.sun.beans.editors=ALL-UNNAMED,java.desktop/sun.awt.im=ALL-UNNAMED,
java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED,java.management/sun.management=ALL-UNNAMED

Mac OSX:
-J-XaddExports:java.desktop/com.apple.eawt=ALL-UNNAMED,
java.desktop/sun.awt=ALL-UNNAMED,java.base/jdk.internal.jrtfs=ALL-UNNAMED,java.desktop/apple.laf=ALL-UNNAMED,java.desktop/java.awt.peer=ALL-UNNAMED,java.desktop/com.sun.beans.editors=ALL-UNNAMED,java.desktop/sun.awt.im=ALL-UNNAMED,java.management/sun.management=ALL-UNNAMED 

Windows:
-J-Djdk.launcher.addexports=java.desktop/sun.awt=ALL-UNNAMED,java.base/jdk.internal.jrtfs=ALL-UNNAMED,
java.desktop/java.awt.peer=ALL-UNNAMED,java.desktop/com.sun.beans.editors=ALL-UNNAMED,java.desktop/sun.awt.im=ALL-UNNAMED,
java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED,java.management/sun.management=ALL-UNNAMED
Comment 1 Martin Balin 2016-04-06 07:41:02 UTC
Make this change only to jet-main repo jdk9 branch.
Comment 2 Martin Balin 2016-04-13 08:03:10 UTC
Since b112 previous way of addexports does not work, use the new one instead.

Linux
-J-XaddExports:java.desktop/sun.awt=ALL-UNNAMED -J-XaddExports:java.base/jdk.internal.jrtfs=ALL-UNNAMED 
-J-XaddExports:java.desktop/java.awt.peer=ALL-UNNAMED -J-XaddExports:java.desktop/com.sun.beans.editors=ALL-UNNAMED -J-XaddExports:java.desktop/sun.awt.im=ALL-UNNAMED 
-J-XaddExports:java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED -J-XaddExports:java.management/sun.management=ALL-UNNAMED

Mac OSX
-J-XaddExports:java.desktop/com.apple.eawt=ALL-UNNAMED 
-J-XaddExports:java.desktop/sun.awt=ALL-UNNAMED -J-XaddExports:java.base/jdk.internal.jrtfs=ALL-UNNAMED -J-XaddExports:java.desktop/apple.laf=ALL-UNNAMED 
-J-XaddExports:java.desktop/java.awt.peer=ALL-UNNAMED -J-XaddExports:java.desktop/com.sun.beans.editors=ALL-UNNAMED -J-XaddExports:java.desktop/sun.awt.im=ALL-UNNAMED 
-J-XaddExports:java.management/sun.management=ALL-UNNAMED 

Windows
-J-Djdk.launcher.addexports.0=java.desktop/sun.awt=ALL-UNNAMED -J-Djdk.launcher.addexports.1=java.base/jdk.internal.jrtfs=ALL-UNNAMED -J-
Djdk.launcher.addexports.2=java.desktop/java.awt.peer=ALL-UNNAMED -J-Djdk.launcher.addexports.3=java.desktop/com.sun.beans.editors=ALL-UNNAMED -J-Djdk.launcher.addexports.3=java.desktop/sun.awt.im=ALL-UNNAMED -J-
Djdk.launcher.addexports.4=java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED -J-Djdk.launcher.addexports.5=java.management/sun.management=ALL-UNNAMED
Comment 3 Libor Fischmeistr 2016-04-15 15:26:29 UTC
Fix - http://hg.netbeans.org/core-main/rev/4e70b5f3cc71
Comment 4 Martin Balin 2016-04-25 11:34:51 UTC
The fix does not work on Linux. nbexec script cannot specify -DaddExports=... but must be in a format -XaddExports=.... variant with -D is ignored by JDK9.
Sample from

This does not work on JDK9:
        addExports="-DaddExports:java.desktop/com.apple.eawt=ALL-UNNAMED -DaddExports:java.desktop/sun.awt=ALL-UNNAMED -DaddExports:java.base/jdk.internal.jrtfs=ALL-UNNAMED -DaddExports:java.desktop/apple.laf=ALL-UNNAMED -DaddExports:java.desktop/java.awt.peer=ALL-UNNAMED -DaddExports:java.desktop/com.sun.beans.editors=ALL-UNNAMED -DaddExports:java.desktop/sun.awt.im=ALL-UNNAMED -DaddExports:java.management/sun.management=ALL-UNNAMED"
    ;;
    *)
This works on JDK9:
        addExports="-XaddExports:java.desktop/sun.awt=ALL-UNNAMED -XaddExports:java.base/jdk.internal.jrtfs=ALL-UNNAMED -XaddExports:java.desktop/java.awt.peer=ALL-UNNAMED -XaddExports:java.desktop/com.sun.beans.editors=ALL-UNNAMED -XaddExports:java.desktop/sun.awt.im=ALL-UNNAMED -XaddExports:java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED -XaddExports:java.management/sun.management=ALL-UNNAMED"
    ;;
A check for JDK 9 or higher needs to be done before setting these properties.
Comment 5 Libor Fischmeistr 2016-04-25 16:06:18 UTC
Works with newer JDK 9 build b114. Closing