JARファイルとして構築したいJavaFXプロジェクトがあります。ただし、私がそうするようにしようとしたとき、私はエラーが発生します。
Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK
_
私は昨年からここで似たような 問題 を見つけましたが、彼らが何も締めくくらなかったようです。
これは、別のJDKがインストールされていて別のJDKがインストールされてコンパイルされているか、または残念ながら壊れているIntellijにアーティファクトを作成するときにJavaFXアプリケーションJAR機能を使用しているためです。以下の手順で進む前に、同じJDKバージョンでコンパイルして実行していることを確認してください。ここに修正しています:
Launcherクラスは、アプリケーションが実行されるメインのJavaFXクラスを呼び出す予定です。メインクラスを通してJARを直接作成することを選択すると、次のエラーが発生します。
Error: Could not find or load main class Main
Caused by: Java.lang.ClassNotFoundException: Main
ランチャークラスは次のようになります。
public class Launcher {
public static void main(String[] args) {
MainGUI.main(args);
}
}
これまでのビルドからまだMETA-INF
フォルダがあるので、削除します。
プロジェクトをjarとして構築する:
ファイル - >プロジェクト構造 - >アーティファクト - > "+" - > JAR->依存関係を持つモジュールから..
メインのランチャークラスを選択し、[== --- ==]コピーして、マニフェストを介してリンクディレクトリにコピーし、[OK]を押します。
[適用]を押してから[OK]をクリックします。
ビルド - > artifacts->再構築を作成します
JetrainsのWebサイトでは、 パッケージJavaFXアプリケーション のパッケージJavaFXアプリケーション( - === - )が見つかりました。 #トラブルシューティング セクションそれは言う
_Error:Java FX Packager: Can't build artifact – fx:deploy is not available in this JDK
__
fx:deploy
_タスクは、以前はJava packagerの一部として_ant-javafx.jar
_に配布されていたAntプラグインの一部でした。 Antプラグインは現在のJDKバージョンのJPackageには含まれていません。バージョン9以降のJDKビルドを使用している場合は、パッケージング用のサードパーティソリューションを使用してください。たとえば、JavaFXの公式ドキュメントのセクション ランタイムイメージ を参照してください。