sshahine / JFoenix

JavaFX Material Design Library
MIT License
6.29k stars 1.06k forks source link

JDK 12 incompatible #955

Open chengenzhao opened 5 years ago

chengenzhao commented 5 years ago

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 commented 5 years ago

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

cupendra commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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

Terkea commented 5 years ago

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

NomadicDeveloper22 commented 5 years ago

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

NomadicDeveloper22 commented 5 years ago

@jfoenixadmin not sure if you saw this already:

https://stackoverflow.com/a/55892520

jfoenixadmin commented 5 years ago

@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 commented 5 years ago

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

rnayabed commented 5 years ago

@jfoenixadmin when will get a fix for this :(

mmahapat commented 5 years ago

is this fixed??

kowlown commented 5 years ago

Not fixed yet

dosibogabriel commented 4 years ago

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 commented 4 years ago

did any one resolve this issue ?

anis-dr commented 4 years ago

Any fix?

aviollet commented 4 years ago

any fix ?

astonbitecode commented 4 years ago

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

OhenebaAduhene commented 4 years ago

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

ysyesilyurt commented 4 years ago

@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 commented 4 years ago

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

viewv commented 4 years ago

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?

NomadicDeveloper22 commented 4 years ago

@viewv yes currently that is the only solution

rruffer commented 4 years ago

any fix ?

mohammadne commented 4 years ago

please fix it.

richidubey commented 4 years ago

PLEASE!!!!!!!!

kowlown commented 4 years ago

It's dead Jim

rruffer commented 4 years ago

no news on the subject?

jfoenixadmin commented 4 years ago

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 commented 4 years ago

Amazing!! Regards, Ngacho.

"A painting is never finished-It simply stops in interesting places." Paul Gauguin.

On Thu, 4 Jun 2020 at 11:12, JFoeniX notifications@github.com wrote:

Hallelujah, I'm pushing the fix today to JFoenix 9 branch :p

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jfoenixadmin/JFoenix/issues/955#issuecomment-638686054, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMPONSMBBFRV7POAGFORR33RU5JP5ANCNFSM4G7ZDIJA .

seinecle commented 4 years ago

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 commented 4 years ago

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

jfoenixadmin commented 4 years ago

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 commented 4 years ago

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

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

jfoenixadmin commented 4 years ago

it's on maven

seinecle commented 4 years ago

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 commented 4 years ago

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.<clinit>(ReflectionHelper.java:48)
    at com.jfoenix/com.jfoenix.skins.JFXTextFieldSkin.<init>(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.<init>(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.<init>(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.<init>(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.<init>(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 commented 4 years ago

@rruffer which JDK version are you using?

rruffer commented 4 years ago

14

jfoenixadmin commented 4 years ago

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

jfoenixadmin commented 4 years ago

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 commented 4 years ago

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

jfoenixadmin commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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

rruffer commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

@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.