Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JDK 12 incompatible #955

Open
chengenzhao opened this issue Mar 20, 2019 · 57 comments
Open

JDK 12 incompatible #955

chengenzhao opened this issue Mar 20, 2019 · 57 comments

Comments

@chengenzhao
Copy link

@chengenzhao chengenzhao commented Mar 20, 2019

Hi:
Today JDK 12 is released and one interesting change is they make javafx.scene.control.skin.TextFieldSkin members private
thus for JFoenix we will get some exception like:
java.lang.IllegalAccessException: class com.jfoenix.skins.JFXTextFieldSkin cannot access a member of class javafx.scene.control.skin.TextFieldSkin with modifiers "private"
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:355)

so any ideas how we should fix this problem?

@chengenzhao
Copy link
Author

@chengenzhao chengenzhao commented Mar 20, 2019

and I guess this problem has something to do with this issue:
https://bugs.openjdk.java.net/browse/JDK-8207942

@cupendra
Copy link

@cupendra cupendra commented Mar 20, 2019

Hi, we did face the relevant problem with the same component JFXTextFieldSkin while launching the application.

Here is the exception.
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at com.jfoenix.skins.JFXTextFieldSkin.updateTextPos(JFXTextFieldSkin.java:109)
at com.jfoenix.skins.JFXTextFieldSkin.layoutChildren(JFXTextFieldSkin.java:93)
at javafx.scene.control.Control.layoutChildren(Control.java:601)

java.version : 12
java.vm.version : 12+33

we use java fx bundle 12

Thought this is relevant. Let me know if this needs to be created as a new issue

@micheljung
Copy link
Contributor

@micheljung micheljung commented Mar 30, 2019

I tried looking into it but @jfoenixadmin it seems that the branch JFoenix-9.0.0 hasn't been kept up to date since August 2018 :-(

I tried updating it but went over my head.

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Apr 3, 2019

@micheljung no worries, I'll do the merge now.
However I'm not sure this will fix the compatibility with JDK 12

@Terkea
Copy link

@Terkea Terkea commented Jun 2, 2019

Same problem here with jfoenix 9.0.9
Has anybody figured out how to fix it?

@TheRedSpy15
Copy link

@TheRedSpy15 TheRedSpy15 commented Jun 19, 2019

I am also having a problem with jfoenix 9.0.9 and JDK 12

@TheRedSpy15
Copy link

@TheRedSpy15 TheRedSpy15 commented Jun 19, 2019

@jfoenixadmin not sure if you saw this already:

https://stackoverflow.com/a/55892520

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jul 4, 2019

@TheRedSpy15 that's how we are using reflection to access private fields. however I suspect that the field either renamed or removed thus causing this issue.

@sanjitmisra
Copy link

@sanjitmisra sanjitmisra commented Jul 15, 2019

I am facing this issue as well
java.lang.IllegalAccessException: class com.jfoenix.skins.JFXTextAreaSkin cannot access a member of class javafx.scene.control.skin.TextAreaSkin

@dubbadhar
Copy link

@dubbadhar dubbadhar commented Jul 19, 2019

@jfoenixadmin when will get a fix for this :(

@mmahapat
Copy link

@mmahapat mmahapat commented Oct 10, 2019

is this fixed??

@kowlown
Copy link

@kowlown kowlown commented Oct 18, 2019

Not fixed yet

@Dosibo-dot
Copy link

@Dosibo-dot Dosibo-dot commented Dec 10, 2019

Am also faced with the same issue

java.lang.IllegalAccessException: class com.jfoenix.skins.JFXTextFieldSkin cannot access a member of class javafx.scene.control.skin.TextFieldSkin with modifiers "private"

@pramudKumarage
Copy link

@pramudKumarage pramudKumarage commented Dec 22, 2019

did any one resolve this issue ?

@anis00723
Copy link

@anis00723 anis00723 commented Jan 21, 2020

Any fix?

@aviollet
Copy link

@aviollet aviollet commented Jan 31, 2020

any fix ?

@astonbitecode
Copy link

@astonbitecode astonbitecode commented Feb 7, 2020

Are there any plans for making JFoenix compatible with versions of Java greater than 11?

@OhenebaAduhene
Copy link

@OhenebaAduhene OhenebaAduhene commented Feb 28, 2020

any fix to the access block to JFXTextfield and JFXPassword in jdk12?

@ysyesilyurt
Copy link

@ysyesilyurt ysyesilyurt commented Apr 25, 2020

@jfoenixadmin We need some kind of a fix for this bug please, I don't want to downgrade to jdk11 just for this issue :(

@seinecle
Copy link

@seinecle seinecle commented Apr 26, 2020

Same here. Won't use the library as I am on JDK 14 / JavaFX 12

@viewv
Copy link

@viewv viewv commented May 6, 2020

Same here

class com.jfoenix.skins.JFXTextFieldSkin cannot access a member of class
javafx.scene.control.skin.TextFieldSkin (in module javafx.controls) with modifiers "private"

I am on JDK 14 and JavaFx 14, May be I have to downgrade to JDK 11?

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jun 4, 2020

Hallelujah, I'm pushing the fix today to JFoenix 9 branch :p, I'll update the maven jars later today to x.x.10

@ngacho
Copy link

@ngacho ngacho commented Jun 4, 2020

@seinecle
Copy link

@seinecle seinecle commented Jun 4, 2020

Hallelujah, I'm pushing the fix today to JFoenix 9 branch :p, I'll update the maven jars later today to x.x.10

YOU ROCK! THANKS !!!

@rruffer
Copy link

@rruffer rruffer commented Jun 4, 2020

Thank you. This is the most important lib in the fx world. Never let her die.

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jun 4, 2020

I've tested the fix on JDK 14 / JavaFX 14, @seinecle can you verify it's working on your environment? supposedly it should work, but it's better to test

@rruffer
Copy link

@rruffer rruffer commented Jun 4, 2020

I'm crazy to test. But I am hoping to upload the version for the maven.

https://mvnrepository.com/artifact/com.jfoenix/jfoenix

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jun 4, 2020

it's on maven

@seinecle
Copy link

@seinecle seinecle commented Jun 4, 2020

cc @jfoenixadmin > I've tested the fix on JDK 14 / JavaFX 14, @seinecle can you verify it's working on your environment? supposedly it should work, but it's better to test

In Netbeans in a modular project it gets me a warning that the module com.jfoenix is not found. I am a noob but can it be due to the module-info file in the lib?

@rruffer
Copy link

@rruffer rruffer commented Jun 4, 2020

error:

java.lang.reflect.InaccessibleObjectException: Unable to make boolean java.lang.reflect.AccessibleObject.setAccessible0(boolean) accessible: module java.base does not "opens java.lang.reflect" to module com.jfoenix
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:349)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:289)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:196)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:190)
at com.jfoenix/com.jfoenix.adapters.ReflectionHelper.(ReflectionHelper.java:48)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.(JFXTextFieldSkin.java:59)
at com.jfoenix/com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
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.Node.processCSS(Node.java:9542)
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(AccessController.java:391)
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.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)
java.lang.NullPointerException
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.createPromptNode(JFXTextFieldSkin.java:152)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.lambda$new$1(JFXTextFieldSkin.java:70)
at com.jfoenix/com.jfoenix.skins.PromptLinesWrapper.init(PromptLinesWrapper.java:123)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.(JFXTextFieldSkin.java:70)
at com.jfoenix/com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
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.Node.processCSS(Node.java:9542)
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(AccessController.java:391)
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.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)
java.lang.NullPointerException
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.createPromptNode(JFXTextFieldSkin.java:152)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.lambda$new$1(JFXTextFieldSkin.java:70)
at com.jfoenix/com.jfoenix.skins.PromptLinesWrapper.init(PromptLinesWrapper.java:123)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.(JFXTextFieldSkin.java:70)
at com.jfoenix/com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
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.Node.processCSS(Node.java:9542)
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(AccessController.java:391)
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.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)
java.lang.NullPointerException
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.createPromptNode(JFXTextFieldSkin.java:152)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.lambda$new$1(JFXTextFieldSkin.java:70)
at com.jfoenix/com.jfoenix.skins.PromptLinesWrapper.init(PromptLinesWrapper.java:123)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.(JFXTextFieldSkin.java:70)
at com.jfoenix/com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
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.Node.processCSS(Node.java:9542)
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(AccessController.java:391)
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.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)
java.lang.NullPointerException
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.createPromptNode(JFXTextFieldSkin.java:152)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.lambda$new$1(JFXTextFieldSkin.java:70)
at com.jfoenix/com.jfoenix.skins.PromptLinesWrapper.init(PromptLinesWrapper.java:123)
at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.(JFXTextFieldSkin.java:70)
at com.jfoenix/com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
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.Node.processCSS(Node.java:9542)
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(AccessController.java:391)
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.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jun 4, 2020

@rruffer which JDK version are you using?

@rruffer
Copy link

@rruffer rruffer commented Jun 4, 2020

14

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jun 4, 2020

it's weird, I mean i do get a warning that the library is using reflection but not an error.
mmmm....

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jun 4, 2020

aha I see, try adding --illegal-access=warn to VM args when running the application
that should fix it for now, until I find a workaround for those reflection calls :s

@rruffer
Copy link

@rruffer rruffer commented Jun 4, 2020

not work for me. See my code: https://github.com/rruffer/library-fx

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jun 5, 2020

@rruffer, I took a look at your code and i noticed you are using maven. I have a question, how did you add the --illegal-access=warn vm arg?

@seinecle
Copy link

@seinecle seinecle commented Jun 5, 2020

Same issue:
java.lang.reflect.InaccessibleObjectException: Unable to make boolean java.lang.reflect.AccessibleObject.setAccessible0(boolean) accessible: module java.base does not "opens java.lang.reflect" to module com.jfoenix

Related discussion on Stackoverflow

@jfoenixadmin
Copy link
Owner

@jfoenixadmin jfoenixadmin commented Jun 5, 2020

Ok, so according to @seinecle link, adding an open to vm arg should fix it:
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
or
--add-opens java.base/java.lang.reflect=com.jfoenix
@seinecle can you verify the fix?

@seinecle
Copy link

@seinecle seinecle commented Jun 5, 2020

Ok, so according to @seinecle link, adding an open to vm arg should fix it:
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
or
--add-opens java.base/java.lang.reflect=com.jfoenix
@seinecle can you verify the fix?

@jfoenixadmin thx! I use Maven and not sure where I can add it but will investigate

@rruffer
Copy link

@rruffer rruffer commented Jun 5, 2020

@jfoenixadmin I am using eclipse. Right click on the project. I'm going to run as. Run configuration. Tab Arguments and vm arguments.

@rruffer
Copy link

@rruffer rruffer commented Jun 5, 2020

@jfoenixadmin with --add-opens java.base/java.lang.reflect=ALL-UNNAMED
and
--add-opens java.base/java.lang.reflect=com.jfoenix

work for me

@seinecle
Copy link

@seinecle seinecle commented Jun 5, 2020

@jfoenixadmin I am using eclipse. Right click on the project. I'm going to run as. Run configuration. Tab Arguments and vm arguments.

Yes but for a packaged app?

@rruffer
Copy link

@rruffer rruffer commented Jun 5, 2020

I haven't packed it yet. but I usually use launch4j or create a .bat to pass the arguments and start the application.

There is this way to configure maven too. But I still haven't tested it by packaging:

https://github.com/openjfx/javafx-maven-plugin
https://github.com/rruffer/library-fx/blob/master/pom.xml

<plugin>
<groupId> org.openjfx </groupId>
<artifactId> javafx-maven-plugin </artifactId>
<version> 0.0.4 </version>
<configuration>
<options>
<option> --add-opens </option>
<option> javafx.graphics/javafx.css=ALL-UNNAMED </option>
<option> --add-opens </option>
<option> javafx.base / com.sun.javafx.runtime = ALL-UNNAMED </option>
<option> --add-opens </option>
<option> javafx.controls / com.sun.javafx.scene.control.behavior = ALL-UNNAMED </option>
<option> --add-opens </option>
<option> javafx.controls / com.sun.javafx.scene.control = ALL-UNNAMED </option>
<option> --add-opens </option>
<option> javafx.base / com.sun.javafx.binding = ALL-UNNAMED </option>
<option> --add-opens </option>
<option> javafx.base / com.sun.javafx.event = ALL-UNNAMED </option>
<option> --add-opens </option>
<option> javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED </option>
<option> --add-exports </option>
<option> javafx.controls / com.sun.javafx.scene.control.behavior = com.jfoenix </option>
<option> --add-exports </option>
<option> javafx.controls / com.sun.javafx.scene.control = com.jfoenix </option>
<option> --add-exports </option>
<option> javafx.base / com.sun.javafx.binding = com.jfoenix </option>
<option> --add-exports </option>
<option> javafx.graphics/com.sun.javafx.stage=com.jfoenix </option>
<option> --add-exports </option>
<option> javafx.base / com.sun.javafx.event = com.jfoenix </option>
</options>
<mainClass> br.com.rruffer.library.App </mainClass>
</configuration>
</plugin>```
@seinecle
Copy link

@seinecle seinecle commented Jun 5, 2020

@jfoenixadmin works for me!
In a Maven project, place these arguments (--add-opens java.base/java.lang.reflect=com.jfoenix) in the javafx maven plugin, as instructed here.

@jackpeters667
Copy link

@jackpeters667 jackpeters667 commented Jun 10, 2020

@jfoenixadmin It's not working for me, I'm on gradle (JDK and JavaFX 14) and I tried adding those arguments in my gradle.properties and in the Run Configuration from Intellij and I still get the same error from the same issue that @rruffer had.

@jackpeters667
Copy link

@jackpeters667 jackpeters667 commented Jun 10, 2020

@jfoenixadmin It's not working for me, I'm on gradle (JDK and JavaFX 14) and I tried adding those arguments in my gradle.properties and in the Run Configuration from Intellij and I still get the same error from the same issue that @rruffer had.

Nevermind, I'm sorted. I had to use --add-opens=java.base/java.lang.reflect=com.jfoenix

The = after opens was key

@rruffer
Copy link

@rruffer rruffer commented Jun 10, 2020

I had a problem with gradle and java 14. I couldn't solve it. In the maven I did it.

@kowlown
Copy link

@kowlown kowlown commented Jun 10, 2020

@jfoenixadmin It's not working for me, I'm on gradle (JDK and JavaFX 14) and I tried adding those arguments in my gradle.properties and in the Run Configuration from Intellij and I still get the same error from the same issue that @rruffer had.

Nevermind, I'm sorted. I had to use --add-opens=java.base/java.lang.reflect=com.jfoenix

The = after opens was key

@jackpeters667 where do you place these options in gradle ?

@rruffer
Copy link

@rruffer rruffer commented Jun 10, 2020

I saw it that way: http://quabr.com:8182/58133725/how-to-fix-jvm-options-exports-javafx-11-to-com-jfoenix-on-gradle-idea

But it would be better to ask the developers of the plugin. In the git the maven plugin teaches. They should show it too: https://github.com/openjfx/javafx-gradle-plugin

@dubbadhar
Copy link

@dubbadhar dubbadhar commented Jun 11, 2020

after adding the args that @seinecle mentioned im still getting the same issue

@seinecle
Copy link

@seinecle seinecle commented Jun 18, 2020

@dubbadhar your --add-opens argument did not work, that is what the exception says. You could try to launch your app through a Maven build instead of pure javac and java.exe. Using Maven, you would place the --add-opens argument in the pom.xml, following the instructions in the link I shared.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.