web-dev-qa-db-ja.com

JavaFXはArtifactを作成できません - FX:DeployはこのJDKでは利用できません

JARファイルとして構築したいJavaFXプロジェクトがあります。ただし、私がそうするようにしようとしたとき、私はエラーが発生します。

Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK
 _

私は昨年からここで似たような 問題 を見つけましたが、彼らが何も締めくくらなかったようです。

9
Mr. Nielzom

これは、別のJDKがインストールされていて別のJDKがインストールされてコンパイルされているか、または残念ながら壊れているIntellijにアーティファクトを作成するときにJavaFXアプリケーションJAR機能を使用しているためです。以下の手順で進む前に、同じJDKバージョンでコンパイルして実行していることを確認してください。ここに修正しています:

1 - ランチャークラスを作成します。

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);
        }
    }

2 - ジャーを建てるために

  1. これまでのビルドからまだMETA-INFフォルダがあるので、削除します。

  2. プロジェクトをjarとして構築する:
    ファイル - >プロジェクト構造 - >アーティファクト - > "+" - > JAR->依存関係を持つモジュールから..

  3. メインのランチャークラスを選択し、[== --- ==]コピーして、マニフェストを介してリンクディレクトリにコピーし、[OK]を押します。

  4. [適用]を押してから[OK]をクリックします。

  5. ビルド - > artifacts->再構築を作成します

3
AM429

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の公式ドキュメントのセクション ランタイムイメージ を参照してください。