NoClassDefFoundError:javafx/embed/swing/JFXPanel(ApacheFelixMaven捆绑包插件)

NoClassDefFoundError:javafx/embed/swing/JFXPanel(ApacheFelixMaven捆绑包插件),javafx,osgi,noclassdeffounderror,apache-felix,maven-bundle-plugin,Javafx,Osgi,Noclassdeffounderror,Apache Felix,Maven Bundle Plugin,我正在尝试将JFXPanel类与ApacheFelixMaven捆绑包插件一起使用。我尝试将JavaFX类导出到带有标记的捆绑包中,但我始终获得NoClassDefFoundError异常: ERROR 10:08:15 Uncaught Exception in thread 'AWT-EventQueue-0' java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel at edu.stanford.bmir.

我正在尝试将JFXPanel类与ApacheFelixMaven捆绑包插件一起使用。我尝试将JavaFX类导出到带有标记的捆绑包中,但我始终获得NoClassDefFoundError异常:

    ERROR  10:08:15  Uncaught Exception in thread 'AWT-EventQueue-0'
java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel
    at edu.stanford.bmir.protege.examples.view.Metrics.<init>(Metrics.java:42) ~[na:na]
    at edu.stanford.bmir.protege.examples.view.ExampleViewComponent.initialiseOWLView(ExampleViewComponent.java:17) ~[na:na]
    at org.protege.editor.owl.ui.view.AbstractOWLViewComponent.initialise(AbstractOWLViewComponent.java:43) ~[na:na]
    at org.protege.editor.core.ui.view.View.createContent(View.java:413) ~[na:na]
    at org.protege.editor.core.ui.view.View.createUI(View.java:220) ~[na:na]
    at org.protege.editor.core.ui.view.View$1.hierarchyChanged(View.java:124) ~[na:na]
    at java.awt.Component.processHierarchyEvent(Component.java:6700) ~[na:1.8.0_121]
    at java.awt.Component.processEvent(Component.java:6319) ~[na:1.8.0_121]
    at java.awt.Container.processEvent(Container.java:2236) ~[na:1.8.0_121]
    at java.awt.Component.dispatchEventImpl(Component.java:4889) ~[na:1.8.0_121]
    at java.awt.Container.dispatchEventImpl(Container.java:2294) ~[na:1.8.0_121]
    at java.awt.Component.dispatchEvent(Component.java:4711) ~[na:1.8.0_121]
    at java.awt.Component.createHierarchyEvents(Component.java:5549) ~[na:1.8.0_121]
    at java.awt.Container.createHierarchyEvents(Container.java:1445) ~[na:1.8.0_121]
    at java.awt.Container.createHierarchyEvents(Container.java:1441) ~[na:1.8.0_121]
    at java.awt.Container.createHierarchyEvents(Container.java:1441) ~[na:1.8.0_121]
    at java.awt.Container.createHierarchyEvents(Container.java:1441) ~[na:1.8.0_121]
    at java.awt.Container.createHierarchyEvents(Container.java:1441) ~[na:1.8.0_121]
    at java.awt.Component.show(Component.java:1639) ~[na:1.8.0_121]
    at java.awt.Component.show(Component.java:1671) ~[na:1.8.0_121]
    at java.awt.Component.setVisible(Component.java:1623) ~[na:1.8.0_121]
    at javax.swing.JComponent.setVisible(JComponent.java:2644) ~[na:1.8.0_121]
    at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:394) ~[na:1.8.0_121]
    at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:270) ~[na:1.8.0_121]
    at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:132) ~[na:1.8.0_121]
    at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:67) ~[na:1.8.0_121]
    at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:616) ~[na:1.8.0_121]
    at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:591) ~[na:1.8.0_121]
    at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:3647) ~[na:1.8.0_121]
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280) ~[na:1.8.0_121]
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279) ~[na:1.8.0_121]
    at java.awt.Component.processMouseEvent(Component.java:6530) ~[na:1.8.0_121]
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) ~[na:1.8.0_121]
    at java.awt.Component.processEvent(Component.java:6298) ~[na:1.8.0_121]
    at java.awt.Container.processEvent(Container.java:2236) ~[na:1.8.0_121]
    at java.awt.Component.dispatchEventImpl(Component.java:4889) ~[na:1.8.0_121]
    at java.awt.Container.dispatchEventImpl(Container.java:2294) ~[na:1.8.0_121]
    at java.awt.Component.dispatchEvent(Component.java:4711) ~[na:1.8.0_121]
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) ~[na:1.8.0_121]
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522) ~[na:1.8.0_121]
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) ~[na:1.8.0_121]
    at java.awt.Container.dispatchEventImpl(Container.java:2280) ~[na:1.8.0_121]
    at java.awt.Window.dispatchEventImpl(Window.java:2746) ~[na:1.8.0_121]
    at java.awt.Component.dispatchEvent(Component.java:4711) ~[na:1.8.0_121]
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) ~[na:1.8.0_121]
    at java.awt.EventQueue.access$500(EventQueue.java:97) ~[na:1.8.0_121]
    at java.awt.EventQueue$3.run(EventQueue.java:709) ~[na:1.8.0_121]
    at java.awt.EventQueue$3.run(EventQueue.java:703) ~[na:1.8.0_121]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_121]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) ~[na:1.8.0_121]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) ~[na:1.8.0_121]
    at java.awt.EventQueue$4.run(EventQueue.java:731) ~[na:1.8.0_121]
    at java.awt.EventQueue$4.run(EventQueue.java:729) ~[na:1.8.0_121]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_121]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) ~[na:1.8.0_121]
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) ~[na:1.8.0_121]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) [na:1.8.0_121]
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) [na:1.8.0_121]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) [na:1.8.0_121]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [na:1.8.0_121]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) [na:1.8.0_121]
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [na:1.8.0_121]
Caused by: java.lang.ClassNotFoundException: javafx.embed.swing.JFXPanel not found by protege.plugin.examples [30]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574) ~[org.apache.felix.main.jar:na]
    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) ~[org.apache.felix.main.jar:na]
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018) ~[org.apache.felix.main.jar:na]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
    ... 62 common frames omitted
线程“AWT-EventQueue-0”中出现错误10:08:15未捕获异常
NoClassDefFoundError:javafx/embed/swing/JFXPanel
在edu.stanford.bmir.protege.examples.view.Metrics.(Metrics.java:42)~[na:na]
在edu.stanford.bmir.protege.examples.view.ExampleViewComponent.initialiseOWLView(ExampleViewComponent.java:17)~[na:na]
在org.protege.editor.owl.ui.view.AbstractOWLViewComponent.initialise(AbstractOWLViewComponent.java:43)~[na:na]
在org.protege.editor.core.ui.view.view.createContent(view.java:413)~[na:na]
在org.protege.editor.core.ui.view.view.createUI(view.java:220)~[na:na]
在org.protege.editor.core.ui.view.view$1.hierarchyChanged(view.java:124)~[na:na]
在java.awt.Component.processHierarchyEvent(Component.java:6700)~[na:1.8.0\u 121]
在java.awt.Component.processEvent(Component.java:6319)~[na:1.8.0_121]
在java.awt.Container.processEvent(Container.java:2236)~[na:1.8.0_121]
在java.awt.Component.dispatchEventImpl(Component.java:4889)~[na:1.8.0\u 121]
在java.awt.Container.dispatchEventImpl(Container.java:2294)~[na:1.8.0\u 121]
在java.awt.Component.dispatchEvent(Component.java:4711)~[na:1.8.0_121]
在java.awt.Component.createHierarchyEvents(Component.java:5549)~[na:1.8.0_121]
在java.awt.Container.createHierarchyEvents(Container.java:1445)~[na:1.8.0_121]
在java.awt.Container.createHierarchyEvents(Container.java:1441)~[na:1.8.0_121]
在java.awt.Container.createHierarchyEvents(Container.java:1441)~[na:1.8.0_121]
在java.awt.Container.createHierarchyEvents(Container.java:1441)~[na:1.8.0_121]
在java.awt.Container.createHierarchyEvents(Container.java:1441)~[na:1.8.0_121]
在java.awt.Component.show(Component.java:1639)~[na:1.8.0_121]
在java.awt.Component.show(Component.java:1671)~[na:1.8.0_121]
在java.awt.Component.setVisible(Component.java:1623)~[na:1.8.0_121]
在javax.swing.JComponent.setVisible(JComponent.java:2644)~[na:1.8.0_121]
在javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:394)~[na:1.8.0\u 121]
在javax.swing.JTabbedPane$modelstener.stateChanged(JTabbedPane.java:270)~[na:1.8.0\u 121]
在javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:132)~[na:1.8.0\u 121]
在javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:67)~[na:1.8.0121]
在javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:616)~[na:1.8.0121]
在javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:591)~[na:1.8.0121]
在javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:3647)~[na:1.8.0121]
在java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)~[na:1.8.0\u 121]
在java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)~[na:1.8.0\u 121]
在java.awt.Component.ProcessMouseeEvent(Component.java:6530)~[na:1.8.0121]
在javax.swing.JComponent.processMouseEvent(JComponent.java:3324)~[na:1.8.0121]
在java.awt.Component.processEvent(Component.java:6298)~[na:1.8.0_121]
在java.awt.Container.processEvent(Container.java:2236)~[na:1.8.0_121]
在java.awt.Component.dispatchEventImpl(Component.java:4889)~[na:1.8.0\u 121]
在java.awt.Container.dispatchEventImpl(Container.java:2294)~[na:1.8.0\u 121]
在java.awt.Component.dispatchEvent(Component.java:4711)~[na:1.8.0_121]
在java.awt.LightweightDispatcher.RetargetMouseeEvent(Container.java:4888)~[na:1.8.0\u 121]
在java.awt.LightweightDispatcher.ProcessMouseeEvent(Container.java:4522)~[na:1.8.0_121]
在java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)~[na:1.8.0_121]
在java.awt.Container.dispatchEventImpl(Container.java:2280)~[na:1.8.0\u 121]
在java.awt.Window.dispatchEventImpl(Window.java:2746)~[na:1.8.0\u 121]
在java.awt.Component.dispatchEvent(Component.java:4711)~[na:1.8.0_121]
在java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)~[na:1.8.0_121]
在java.awt.EventQueue.access$500(EventQueue.java:97)~[na:1.8.0\u 121]
在java.awt.EventQueue$3.run(EventQueue.java:709)~[na:1.8.0\u 121]
在java.awt.EventQueue$3.run(EventQueue.java:703)~[na:1.8.0\u 121]
在java.security.AccessController.doPrivileged(本机方法)~[na:1.8.0_121]
在java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)~[na:1.8.0\u 121]
在java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)~[na:1.8.0\u 121]
在java.awt.EventQueue$4.run(EventQueue.java:731)~[na:1.8.0\u 121]
在java.awt.EventQueue$4.run(EventQueue.java:729)~[na:1.8.0_121]
在java.security.AccessController.doPrivileged(本机方法)~[na:1.8.0_121]
在java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)~[na:1.8.0\u 121]
在java.awt.EventQueue.dispatchEvent(EventQueue.java:728)~[na:1.8.0\u 121]
在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)[na:1.8.0_121]
在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:116)[na:1.8.0\u 121]
在java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)[na:1.8.0\u 121]
在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)[na:1.8.0_121]
在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)[na:1.8.0_121]
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)[na:1.8.0_121]
原因:java.lang.ClassNotFoundException:javafx.embed.swing.JFXPanel未被protege.plugin.examples找到[
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>edu.stanford.protege</groupId>
    <artifactId>protege.plugin.examples</artifactId>
    <version>2.0.0-SNAPSHOT</version>
    <packaging>bundle</packaging>

    <name>Protege Plugin Examples</name>
    <description>Example plug-ins for the Protege Desktop ontology editor, e.g., views, menu items, etc.</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <org.osgi.framework.system.packages.extra>
        javafx.animation,javafx.application,
        javafx.collections,
        javafx.embed.swing,
        javafx.geometry,
        javafx.scene,javafx.scene.layout,
        javafx.scene.transform,
        javax.swing,
        javax.swing.border,
        org.osgi.framework
    </org.osgi.framework.system.packages.extra>
    </properties>

    <dependencies>
        <dependency>
            <groupId>edu.stanford.protege</groupId>
            <artifactId>protege-editor-owl</artifactId>
            <version>5.0.0</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.openjfx/javafx -->
            <dependency>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx</artifactId>
                <version>11</version>
                <type>pom</type>
            </dependency>

    </dependencies>

    <build>

        <resources>
            <resource>
                <!-- Use resource filtering to replace references to the artifactId in the plugin.xml file -->
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>3.0.0</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-Activator>org.protege.editor.owl.ProtegeOWL</Bundle-Activator>
                        <Bundle-ClassPath>.</Bundle-ClassPath>
                        <Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>
                        <Bundle-Vendor>The Protege Development Team</Bundle-Vendor>
                        <Embed-Dependency>javafx</Embed-Dependency>
                        <Embed-Transitive>true</Embed-Transitive>
                        <Export-Package>
                            org.protege.editor.owl.*;version="5.0.0", <!-- equivalent to [5.0.0,infinity) -->
                            com.sun.javafx, com.sun.javafx.animation, com.sun.java
                         fx.applet, com.sun.javafx.application, com.sun.javafx.beans, com.sun.
                         javafx.beans.event, com.sun.javafx.binding, com.sun.javafx.charts, co
                         m.sun.javafx.collections, com.sun.javafx.css, com.sun.javafx.css.conv
                         erters, com.sun.javafx.css.parser, com.sun.javafx.cursor, com.sun.jav
                         afx.effect, com.sun.javafx.embed, com.sun.javafx.event, com.sun.javaf
                         x.font, com.sun.javafx.font.coretext, com.sun.javafx.font.directwrite
                         , com.sun.javafx.font.freetype, com.sun.javafx.font.t2k, com.sun.java
                         fx.fxml, com.sun.javafx.fxml.builder, com.sun.javafx.fxml.expression,
                          com.sun.javafx.geom, com.sun.javafx.geom.transform, com.sun.javafx.g
                         eometry, com.sun.javafx.iio, com.sun.javafx.iio.bmp, com.sun.javafx.i
                         io.common, com.sun.javafx.iio.gif, com.sun.javafx.iio.ios, com.sun.ja
                         vafx.iio.jpeg, com.sun.javafx.iio.png, com.sun.javafx.image, com.sun.
                         javafx.image.impl, com.sun.javafx.jmx, com.sun.javafx.logging, com.su
                         n.javafx.media, com.sun.javafx.menu, com.sun.javafx.perf, com.sun.jav
                         afx.print, com.sun.javafx.property, com.sun.javafx.property.adapter, 
                         com.sun.javafx.robot, com.sun.javafx.robot.impl, com.sun.javafx.runti
                         me, com.sun.javafx.runtime.async, com.sun.javafx.runtime.eula, com.su
                         n.javafx.scene, com.sun.javafx.scene.control, com.sun.javafx.scene.co
                         ntrol.behavior, com.sun.javafx.scene.control.skin, com.sun.javafx.sce
                         ne.control.skin.caspian, com.sun.javafx.scene.control.skin.caspian.im
                         ages, com.sun.javafx.scene.control.skin.modena, com.sun.javafx.scene.
                         control.skin.resources, com.sun.javafx.scene.input, com.sun.javafx.sc
                         ene.layout, com.sun.javafx.scene.layout.region, com.sun.javafx.scene.
                         paint, com.sun.javafx.scene.shape, com.sun.javafx.scene.text, com.sun
                         .javafx.scene.transform, com.sun.javafx.scene.traversal, com.sun.java
                         fx.scene.web, com.sun.javafx.scene.web.behavior, com.sun.javafx.scene
                         .web.skin, com.sun.javafx.sg, com.sun.javafx.sg.prism, com.sun.javafx
                         .sg.prism.web, com.sun.javafx.stage, com.sun.javafx.text, com.sun.jav
                         afx.tk, com.sun.javafx.tk.quantum, com.sun.javafx.util, com.sun.javaf
                         x.webkit, com.sun.javafx.webkit.drt, com.sun.javafx.webkit.prism, com
                         .sun.javafx.webkit.prism.resources, com.sun.javafx.webkit.prism.theme
                         , com.sun.javafx.webkit.theme, javafx, javafx.animation, javafx.appli
                         cation, javafx.beans, javafx.beans.binding, javafx.beans.property, ja
                         vafx.beans.property.adapter, javafx.beans.value, javafx.collections, 
                         javafx.collections.transformation, javafx.concurrent, javafx.css, jav
                         afx.embed, javafx.embed.swing, javafx.event, javafx.fxml, javafx.geom
                         etry, javafx.print, javafx.scene, javafx.scene.canvas, javafx.scene.c
                         hart, javafx.scene.control, javafx.scene.control.cell, javafx.scene.e
                         ffect, javafx.scene.image, javafx.scene.input, javafx.scene.layout, j
                         avafx.scene.media, javafx.scene.paint, javafx.scene.shape, javafx.sce
                         ne.text, javafx.scene.transform, javafx.scene.web, javafx.stage, java
                         fx.util, javafx.util.converter,

                        </Export-Package>                
                    </instructions>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <pde>true</pde>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
<JRE_HOME>/lib/jfxrt.jar
<JRE_HOME>/lib/ext/jfxrt.jar