2017-12-11 4 views
1

私はSun JDE 9.0.1でUbuntu Linuxシステムを使用しており、FxのCSSファイルのいくつかをコンソールからバイナリ形式に変換する必要があります。 しかし、私はコマンドを実行すると:Java 9 javapackerはbss 'を作成中にjfxrt.jarを見つけることができません。 Linuxでは "createbss"モードで完全に壊れているようだ。バグを避けるには?

Error: jfxrt.jar needs to be on classpath for -createbss and for -createJar without -nocss2bin

が私のJDKが正しくインストールされています

javapackager -createbss -outdir . -srcdir . 

を私はエラーを得ました。私はすべての必要なモジュール(FXを含む)を持っています。 どのように私は愚かなバグを避けることができますし、私はそれが仕事をするためにパッケージングを作るすべてのアイデア? "/ usr/lib/jvm/java-9-oracle/jmods"ディレクトリからjavapackagerを実行すると、エラーなしで完了します。だから私は醜い修正を使用して、モジュールのディレクトリを検索し、最新のものにし、そこからパッケージャを実行します。しかし、それは悪い醜いです。 javapackagerは、outdir、srcdir、およびsrcfiles以外のパラメータを受け入れないため、jfxモジュールのロードまたは検索パスを強制することはできません。しかし、環境変数や、修正をあまりにも醜いものにする可能性のあるトリックがあるかもしれませんか?

P.S. jmodディレクトリから実行するか、パラメータから "-srcdir"を削除するとエラーはなくなりますが、パッケージャは( "-srcfiles"で入力ファイルを指定しても)出力ファイルを生成しません。 javapackagerがcreatebssモードで完全に壊れているようです。誰もJava 9でそれを使用しますか?

+0

環境設定を確認しましたか? – Marged

+0

特定のパスからの実行が機能しているということは、このパスがデフォルトのJavaインストールのパスでないことを意味します。 'update-alternatives'を使ってこれがデフォルトJavaであることを確認することができます:https://askubuntu.com/questions/121654/how-to-set-default-java-version – Itai

+0

私の環境はOkです。私は唯一のJavaインストール(OracleのJDK 9.0.1)を持っています。すべてのコンパイラとJavaプログラム(JavaFXを含む)は完全に機能します。 javapackagerの絶対パスを指定すると、何も変更されません。 – Sap

答えて

0

ソースを確認しました.JDK 9.0.1のjavapackagerは完全に壊れています。 Java 8の実行可能ファイルを使用してください。私はOracleにバグレポートを記入しました。突然、彼らは非常に驚いていました(コアツールの基本機能の1つがまだ壊れていることに誰も気付いていませんでしたか?

一時的な解決策:JDK 1.8のjavapackagedツールを使用してください。必要なのは実行ファイルそのものだけで、どこにでも置くことができます。私はそれを私のプロジェクトツリー( "tools"ディレクトリの下)に置いてビルスクリプトから呼び出します。警告! "createbss"にのみ置き換えられたこの実行可能ファイルを使用してください!他のすべてのものには通常のものを使用してください!

+0

bssファイルはCSSファイルの最適化に過ぎません.bssの作成をスキップして、おそらくかなり小さなパフォーマンスのヒットを取ることもできますが、BSSのJDK 8を使用する回避策は一般的です – jewelsea

+0

CSSがかなり大きく、あらゆる形式で使用されていれば、私は目に見えるパフォーマンスの向上に気付くことができます。しかし、それは非常に小さいです。 – Sap

関連する問題