我有osgi(felix)javafx应用程序。启动应用程序时,我得到:
May 30, 2015 10:44:59 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
WARNING: Resource "com/sun/javafx/scene/control/skin/modena/modena.css" not found.
May 30, 2015 10:44:59 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
WARNING: Resource "com/sun/javafx/scene/control/skin/modena/modena.css" not found.
我的阶段没有css规则(也没有边界等)。我找到的唯一解决方案是
Bundle systemBundle =FrameworkUtil.getBundle(MyApplication.class).getBundleContext().getBundle(0);
URL url0=systemBundle.getResource("com/sun/javafx/scene/control/skin/modena/modena.css");
URL url1=systemBundle.getResource("com/sun/javafx/scene/control/skin/modena/modena-no-transparency.css");
scene.getStylesheets().add(url0.toString());
scene.getStylesheets().add(url1.toString());
然而,这是一个糟糕的解决方案,而且我需要为每个阶段做到这一点。什么是解决这个问题的更好的解决方案?
答案 0 :(得分:1)
我找到了答案。是否有必要将包添加到manifest.mf的导入部分。当我使用maven时,它可以通过maven-bundle-plugin
完成<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>com.sun.javafx.scene.control.skin.modena,*</Import-Package>
</instructions>
</configuration>
</plugin>
最重要的是最后的星号。为了添加此捆绑包需要的所有自动检测到的包,这是必要的。如果我们省略此符号,那么我们将不得不手动添加所有包。