有谁知道是否有办法在eclipse工作区中使用JavaFX模块?我有一个OSGi-maven多模块应用程序。
到目前为止,我已经尝试了几件事。
这两件事都有效。但是,在第一种情况下,每个开发人员都必须手动将这些jar作为库添加到类路径中。在每个平台的第二个平台上,我们必须为每个模块提供不同的捆绑包。
如果我没有做这些事情,我就会编译错误,无法找到JavaFX类(如预期的那样)。
有没有第三种方法可以做到这一点?通过使用一些OSGi功能或类似的东西?我还没有找到任何方法在MANIFEST.MF中添加模块。这甚至可能吗?
我在OSGi框架启动器中添加了JavaFX模块作为VM参数,一切正常。但我必须做之前提到的那些事情之一,以便我没有编译错误。 VM参数:--module-path /path/to/javafx/sdk/11/lib --add-modules javafx.controls,javafx.graphics,javafx.base
我尝试将使用JRE 8的E4 / OSGI / GEF / JavaFx项目转换为JRE 11和OpenJFX 11,并找到了一种方法。
就我而言,我使用SWT和javafx.embed.swt.FxCanvas
。在模块路径中包含用户定义的JavaFX库不起作用,在编译时生成类未找到错误;但包括classpath中的库工作。
我也无法使用--module-path
参数运行应用程序;它为NoClassDefFoundError
提供了org.eclipse.swt.widgets.Canvas
例外
我的解决方案使用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的调试消息。