question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Getting `...does not export to module` exception after changing to non-modular project

See original GitHub issue

I just switched my project from modular to non modular and i’m getting this exception all of a sudden.

Exception in thread "JavaFX Application Thread" java.lang.IllegalAccessError: superclass access check failed: class com.jfoenix.controls.behavior.JFXGenericPickerBehavior (in unnamed module @0x449613ed) cannot access class com.sun.javafx.scene.control.behavior.ComboBoxBaseBehavior (in module javafx.controls) because module javafx.controls does not export com.sun.javafx.scene.control.behavior to unnamed module @0x449613ed at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at com.jfoenix.skins.JFXGenericPickerSkin.<init>(JFXGenericPickerSkin.java:62) at com.jfoenix.skins.JFXDatePickerSkin.<init>(JFXDatePickerSkin.java:60) at com.jfoenix.controls.JFXDatePicker.createDefaultSkin(JFXDatePicker.java:100) at javafx.controls/javafx.scene.control.Control.doProcessCSS(Control.java:897) at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Control.java:89) at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67) at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145) at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1400) at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125) at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98) at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145) at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1400) at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125) at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98) at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145) at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1400) at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125) at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98) at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145) at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1400) at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125) at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98) at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145) at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9542) at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9535) at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9535) at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9535) at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9535) at javafx.graphics/javafx.scene.Scene.doCSSPass(Scene.java:569) at javafx.graphics/javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2505) at javafx.graphics/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412) at java.base/java.security.AccessController.doPrivileged(Native Method) at javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411) at javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:563) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:543) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:536) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:342) at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277) at java.base/java.lang.Thread.run(Thread.java:834)

I’m using gradle and this is how I add my exports in my buld.gradle file applicationDefaultJvmArgs = ['--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix', '--add-exports=javafx.graphics/com.sun.javafx.scene=com.jfoenix', '--add-opens=java.base/java.lang.reflect=com.jfoenix', '--add-opens=java.base/java.lang.reflect=ALL-UNNAMED', '--add-exports=javafx.controls/com.sun.javafx.scene.control=com.jfoenix', '--add-exports=javafx.base/com.sun.javafx.binding=com.jfoenix', '--add-exports=javafx.graphics/com.sun.javafx.stage=com.jfoenix', '--add-exports=javafx.base/com.sun.javafx.event=com.jfoenix']

Am I missing something else? It was working just fine as a modular project

Issue Analytics

  • State:open
  • Created 3 years ago
  • Comments:10

github_iconTop GitHub Comments

2reactions
JJBRTcommented, Dec 23, 2021

Please take a look at my article that explain how to export all modules to all modules at runtime in Java 16 and later without using any JVM parameter.

1reaction
FelipeAumannRScommented, Apr 28, 2021

Exactly same problem here. @jfoenixadmin, it looks like a bug.

Possibly fix: just add the following row to your jvm args: “–add-opens=java.base/java.lang.reflect=com.jfoenix”,

It should look like this:

def args = [ “–add-opens=java.base/java.lang.reflect=com.jfoenix”, ]

run { jvmArgs = args }

Heres my complete list of VM arguments:

def args = [ “–add-exports=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED”, “–add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED”, “–add-exports=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED”, “–illegal-access=warn”, “–add-opens=javafx.controls/javafx.scene.control.skin=com.jfoenix”, “–add-exports=javafx.controls/com.sun.javafx.scene.control=com.jfoenix”, “–add-exports=javafx.base/com.sun.javafx.binding=com.jfoenix”, //the next line changes everything. “–add-opens=java.base/java.lang.reflect=com.jfoenix”,

    "--add-exports=javafx.controls/javafx.scene.control.skin=com.jfoenix",
    "--add-exports=java.base/java.lang.reflect=ALL-UNNAMED",
    "--add-exports=java.base/java.lang.reflect=com.jfoenix",
    "--add-exports=javafx.controls/com.Sun.javafx.scene.control.behavior=com.jfoenix",
    "--add-exports=javafx.graphics/com.sun.javafx.stage=com.jfoenix",
    "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix",

    "--add-exports=javafx.base/com.sun.javafx.event=ALL-UNNAMED",

    "--add-exports=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED",
    "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior" +
            "=ALL-UNNAMED",
    "--add-exports=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED",
    "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior" +
            "=com.jfoenix",
    "--add-exports=javafx.controls/com.sun.javafx.binding=com.jfoenix",
    "--illegal-access=warn",
    "--add-opens=javafx.controls/javafx.scene.control.skin=com.jfoenix",
    "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
    "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior" +
            "=com.jfoenix",
    "--add-exports=javafx.controls/com.sun.javafx.scene.control=com.jfoenix",
    "--add-exports=javafx.base/com.sun.javafx.binding=com.jfoenix",
    "--add-exports=javafx.graphics/com.sun.javafx.stage=com.jfoenix",
    "--add-exports=javafx.base/com.sun.javafx.event=com.jfoenix",

    "--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix",
    "--add-exports=javafx.controls/com.sun.javafx.scene.control=com.jfoenix",
    "--add-exports=javafx.base/com.sun.javafx.binding=com.jfoenix",
    "--add-exports=javafx.graphics/com.sun.javafx.stage=com.jfoenix",
    "--add-exports=javafx.base/com.sun.javafx.event=com.jfoenix"

]

run { jvmArgs = args }

Like my answer if it helps 😃

Read more comments on GitHub >

github_iconTop Results From Across the Web

Module not exporting exception in javafx 12 - Stack Overflow
The answer is in your command line: --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" \ .
Read more >
Java 9+ modularity: The difficulties and pitfalls of migrating ...
Modularity enables strong encapsulation: Code that is not exported cannot be accessed by other modules. Some internal APIs considered critically ...
Read more >
Eclipse Project Photon - New and Noteworthy
The following example shows how module module.one can be made to export one of its packages to the module of the current Java...
Read more >
JavaFX - Java and OOP
JavaFX and Eclipse use the instructions for Non-modular projects. ... when you create a new project simply do not create the module info...
Read more >
module java.base does not export sun.net.www.protocol.jar to ...
I just switched my project from modular to non modular and i'm getting this exception all of a sudden. Exception in thread "JavaFX...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found