我有一個Maven項目,我在其中使用javaxf
WebEngine。我通過安裝e(fx)clipse第一次包括javafx
,並且我能夠正常使用它。JavaFX無法加載caspian.css
現在我想將我的程序編譯成一個大的.jar文件,幷包含所有的依賴關係。我第一次使用<scope>system</scope>
並鏈接到我的JDK(1.7.0_45)中的jfxrt.jar
。我使用mvm package
編譯我的程序,並且它適用於構建部分。
然後,我安裝了jfxrt.jar
maven多虧了this SO answer所以我有一個javafx-2.2.45.jar
與maven。
但是,我堅持這個錯誤,當我運行我的程序,當它涉及到實例化特定WebEngine:
INFO: com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged Could not find stylesheet: jar:file:/target/project-name-0.1.one-jar.jar!/lib/javafx-2.2.45.jar!/com/sun/javafx/scene/control/skin/caspian/caspian.css
SEVERE: javafx.scene.control.Control impl_processCSS The -fx-skin property has not been defined in CSS for [email protected][styleClass=scroll-bar]
java.lang.NullPointerException
at com.sun.webpane.sg.theme.ScrollBarThemeImpl.initializeThickness(ScrollBarThemeImpl.java:341)
at com.sun.webpane.sg.theme.ScrollBarThemeImpl.access$100(ScrollBarThemeImpl.java:27)
at com.sun.webpane.sg.theme.ScrollBarThemeImpl$ScrollBarWidget.impl_updatePG(ScrollBarThemeImpl.java:50)
at javafx.scene.Node.impl_syncPGNode(Node.java:425)
at javafx.scene.Scene$ScenePulseListener.syncAll(Scene.java:2106)
at javafx.scene.Scene$ScenePulseListener.syncAll(Scene.java:2115)
at javafx.scene.Scene$ScenePulseListener.syncAll(Scene.java:2115)
at javafx.scene.Scene$ScenePulseListener.synchronizeSceneNodes(Scene.java:2082)
at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2193)
at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:363)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:463)
at com.sun.javafx.tk.quantum.QuantumToolkit$9.run(QuantumToolkit.java:332)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
我打開這個罐子,是能夠找到caspian.css
文件,其中它應該是。
我應該怎麼做才能夠使用我的WebEngine在我的「大編罐子」?我不在乎,如果解決方案是一個快速,骯髒的修復,如複製/粘貼此Css文件的其他地方(我已經嘗試過,但我可能錯過了一些東西..)
我沒有。在我看來,這是建立一個只JavaFX的應用,但在我的應用程序,這僅僅是應用程序的一部分。我會給它一個鏡頭。但是,我需要這個jar是一個獨立的,所以我需要javafx被捆綁到它... – thibaultcha
好吧,它的工作!太好了,謝謝。有一點使用它的努力,但它完成了。你讓我的一天:) – thibaultcha