Maven 在OSGi应用程序中使用OpenJFX11类

Maven 在OSGi应用程序中使用OpenJFX11类,maven,osgi,eclipse-rcp,openjfx,javafx-11,Maven,Osgi,Eclipse Rcp,Openjfx,Javafx 11,有人知道在eclipse工作区中是否有使用JavaFX模块的方法吗?我有一个OSGiMaven多模块应用程序 到目前为止,我已经尝试了一些方法 下载JavaFXSDK并将JAR作为用户定义库添加到eclipse中 绑定javafxjar,然后将它们作为常规的OSGi绑定包使用(在目标平台中添加为依赖项,之后再添加) 这两种方法都有效。但是,在第一种情况下,每个开发人员都必须手动将这些JAR添加为类路径上的库。在第二种情况下,对于每个平台,我们必须为每个模块提供不同的捆绑包 如果我没有做这两件事,


有人知道在eclipse工作区中是否有使用JavaFX模块的方法吗?我有一个OSGiMaven多模块应用程序

到目前为止,我已经尝试了一些方法

  • 下载JavaFXSDK并将JAR作为用户定义库添加到eclipse中
  • 绑定javafxjar,然后将它们作为常规的OSGi绑定包使用(在目标平台中添加为依赖项,之后再添加)
  • 这两种方法都有效。但是,在第一种情况下,每个开发人员都必须手动将这些JAR添加为类路径上的库。在第二种情况下,对于每个平台,我们必须为每个模块提供不同的捆绑包

    如果我没有做这两件事,我就会出现编译错误,无法找到JavaFX类(如预期的那样)

    有第三种方法吗?通过使用一些OSGi功能或类似的东西? 我没有找到任何方法在MANIFEST.MF中添加模块。这可能吗

    我在OSGi框架启动器中添加了JavaFX模块作为VM参数,一切正常。但是我必须做前面提到的事情之一,这样我就不会有编译错误。
    VM参数:
    --module path/path/to/javafx/sdk/11/lib--添加模块javafx.controls、javafx.graphics、javafx.base

    我试图将使用JRE 8的E4/OSGI/GEF/javafx项目转换为JRE 11和OpenJFX 11,并找到了一种方法

    在我的例子中,我使用SWT和
    javafx.embed.SWT.FxCanvas
    。在modulepath中包含用户定义的JavaFX库不起作用,在编译时生成类not found错误;但在类路径中包含库是有效的

    我也无法使用
    --module path
    参数运行应用程序;它给出了
    org.eclipse.swt.widgets.Canvas的
    NoClassDefFoundError
    异常

    我的解决方案使用E(fx)clipse,这也可能是您的第三个选项。在类路径中包含javafx库,并在项目配置中包含
    org.eclipse.fx.osgi
    之后,我使用以下VM参数使用E(fx)clipse加载javafx类

    -Dosgi.framework.extensions=org.eclipse.fx.osgi-Defxclipse.java modules.dir=[openjfx lib directory]

    您还可以添加
    -Defxclipse.osgi.hook.debug=true“
    ,以便在加载类时查看来自E(fx)clipse的调试消息