下記のSampleプロジェクトを実行可能なjarファイルとしてエクスポートしました。
〇生成されるJARに必須ライブラリーを抽出
×生成されるJARに必須ライブラリーをパッケージ
〇生成されるJARの隣のサブフォルダーに必須ライブラリーをコピー
×のjarファイルは実行するとエラーが出ました。
"Invalid stylesheet URL"ということですが、jarファイルを解凍するとcssファイルは含まれています。
eclipse上で実行する場合とパスの設定が違うのでしょうか。
java
1webEngine.setUserStyleSheetLocation(getClass().getResource("/application/webView.css").toExternalForm());
dos
1Caused by: java.lang.IllegalArgumentException: Invalid stylesheet URL 2 at javafx.scene.web.WebEngine$2.invalidated(WebEngine.java:550) 3 at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:109) 4 at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:144) 5 at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:49) 6 at javafx.scene.web.WebEngine.setUserStyleSheetLocation(WebEngine.java:481) 7 at application.EventListenerWeb.<init>(EventListenerWeb.java:40) 8 at application.EventController.initialize(EventController.java:113)
追記
読み込むファイルを出力してみました。
java
1 2 URL url = getClass().getResource("/application/webView.css"); 3 4 System.out.println("url " + url); 5 System.out.println("url " + url.toExternalForm()); 6 7 webEngine.setUserStyleSheetLocation(url.toExternalForm());
動作するJar(〇)
dos
1url jar:file:/C:/Users/personal/Documents/job/%e3%82%bf%e3%82%b9%e3%82%af/yahoo/app_E.jar!/application/webView.css 2url jar:file:/C:/Users/personal/Documents/job/%e3%82%bf%e3%82%b9%e3%82%af/yahoo/app_E.jar!/application/webView.css
動作しないjar(×)
dos
1url rsrc:application/webView.css 2url rsrc:application/webView.css
rsrc URLClassLoaderの独自プロトコル?
(https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10142834290)
動作するjarとしないjarで違いが確認できました。
後は、jarファイルを解凍 → 逆コンパイルでコードの違いを確認すると分かるでしょうか。
追記 その2
実行可能jarをデコンパイルしましたが、どれもコードは同じなんですね。
java
1 URL url = getClass().getResource("/application/webView.css"); 2 System.out.println((new StringBuilder("url ")).append(url).toString()); 3 System.out.println((new StringBuilder("url ")).append(url.toExternalForm()).toString()); 4 webEngine.setUserStyleSheetLocation(url.toExternalForm());
それだと、デコンパイル時に変換が起こっているか、コード以外の部分が原因と考えられそうですが。
深い森に入り込んだような感じです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/08 15:57
2017/10/08 17:02
2017/10/08 18:14
2017/10/09 02:12
2017/10/09 03:20