Intelli j Java fx工件jar不工作
我目前正在做一个项目,我制作了一些JFX Piecharts,并将它们与Swing Jpanels集成 我使用Intelli j Idea,当我尝试使用Intelli j运行代码时,效果很好。但是,当我使用artifacts选项从中生成一个jar文件时,它会出错 发生的情况是,它无法执行正在使用JFX的piechart.class。så应用程序停止 piechart类的作用是使用JFX创建piechart,并通过使用JFXPanel将其导入Swing JPanel。 图表->JFXPanel->Jpanel->显示面板 有什么建议吗 编辑:这里是错误Intelli j Java fx工件jar不工作,java,jar,intellij-idea,javafx,pie-chart,Java,Jar,Intellij Idea,Javafx,Pie Chart,我目前正在做一个项目,我制作了一些JFX Piecharts,并将它们与Swing Jpanels集成 我使用Intelli j Idea,当我尝试使用Intelli j运行代码时,效果很好。但是,当我使用artifacts选项从中生成一个jar文件时,它会出错 发生的情况是,它无法执行正在使用JFX的piechart.class。så应用程序停止 piechart类的作用是使用JFX创建piechart,并通过使用JFXPanel将其导入Swing JPanel。 图表->JFXPanel->
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel
at ov_panel.setupcharts(ov_panel.java:142)
at ov_panel.<init>(ov_panel.java:37)
at userpanel.<init>(userpanel.java:52)
at panels.swap(panels.java:33)
at login.pass_check(login.java:96)
at login$2.keyPressed(login.java:125)
at java.awt.AWTEventMulticaster.keyPressed(AWTEventMulticaster.java:250)
at java.awt.Component.processKeyEvent(Component.java:6463)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2828)
at java.awt.Component.processEvent(Component.java:6282)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1895)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
at java.awt.Component.dispatchEventImpl(Component.java:4731)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.ClassNotFoundException: javafx.embed.swing.JFXPanel
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 41 more
线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError中的异常:javafx/embed/swing/JFXPanel
在ov_panel.setupcharts(ov_panel.java:142)
在ov_面板上。(ov_panel.java:37)
在userpanel上。(userpanel.java:52)
atpanels.swap(panels.java:33)
通过检查(login.java:96)
登录时$2.keyPressed(login.java:125)
在java.awt.AWTEventMulticaster.keyPressed处(AWTEventMulticaster.java:250)
位于java.awt.Component.processKeyEvent(Component.java:6463)
位于javax.swing.JComponent.processKeyEvent(JComponent.java:2828)
位于java.awt.Component.processEvent(Component.java:6282)
位于java.awt.Container.processEvent(Container.java:2229)
位于java.awt.Component.dispatchEventImpl(Component.java:4861)
位于java.awt.Container.dispatchEventImpl(Container.java:2287)
位于java.awt.Component.dispatchEvent(Component.java:4687)
在java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1895)中
位于java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
位于java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
在java.awt.DefaultKeyboardFocusManager.typeAheadAssertions中(DefaultKeyboardFocusManager.java:899)
位于java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
位于java.awt.Component.dispatchEventImpl(Component.java:4731)
位于java.awt.Container.dispatchEventImpl(Container.java:2287)
位于java.awt.Window.dispatchEventImpl(Window.java:2719)
位于java.awt.Component.dispatchEvent(Component.java:4687)
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
在java.awt.EventQueue.access$200(EventQueue.java:103)
位于java.awt.EventQueue$3.run(EventQueue.java:694)
在java.awt.EventQueue$3.run(EventQueue.java:692)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
在java.awt.EventQueue$4.run(EventQueue.java:708)
在java.awt.EventQueue$4.run(EventQueue.java:706)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161)
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
原因:java.lang.ClassNotFoundException:javafx.embed.swing.JFXPanel
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 41多
您能通过终端/命令运行jar并跟踪错误吗?jar的制作方式一定是个问题,但我们不能确定,除非我们通过终端跟踪错误/日志并用我得到的错误编辑原始帖子。谢谢你的帮助:)你能告诉我们你是如何运行这个罐子的吗?看起来您没有正确设置类路径,但很难说。这是因为类路径中的jar/set没有拾取您的
jfxrt.jar
。尝试使用建议的部署方法之一,而不是使用IntelliJ来创建jar!