3

OpenJFX を使用するプロジェクトで jdeps コマンドを実行しようとしていますが、何度も失敗します。

私が使用しているコマンドは、できる限り単純化されています。

jdeps --module-path Y:\javafx-jmods-11.0.2 --add-modules javafx.base Test.jar

javafx-jmods-11.0.2 は、OpenJFX jmod ファイルを含むディレクトリです。

このコマンドを実行すると、次のエラーが表示されます。

Exception in thread "main" java.lang.module.FindException: Module javafx.base not found
    at java.base/java.lang.module.Resolver.findFail(Resolver.java:877)
    at java.base/java.lang.module.Resolver.resolve(Resolver.java:128)
    at java.base/java.lang.module.Configuration.resolve(Configuration.java:411)
    at java.base/java.lang.module.Configuration.resolve(Configuration.java:245)
    at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration.<init>(JdepsConfiguration.java:117)
    at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:563)
    at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:589)
    at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:543)
    at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:519)
    at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:49)

Y:\javafx-jmods-11.0.2 にある javafx.base モジュールが見つからない理由について、アイデアや提案はありますか?

4

1 に答える 1

2

通常、エラーが発生した場合:

java.lang.module.FindException: モジュール ... が見つかりません

これは、モジュール パスが間違っている (有効なパスがない) か、指定したパスに必要なモジュールが含まれていないことを意味します。

Running javafx sample on JDK 11 with OpenJFX 11 JMODS on Module Pathへの回答でわかるように:

ここで説明したように: http://openjdk.java.net/jeps/261#Packaging:-JMOD-files :

JMOD ファイルは、コンパイル時およびリンク時に使用できますが、実行時には使用できません。実行時にそれらをサポートするには、一般に、ネイティブ コード ライブラリをオンザフライで抽出してリンクする準備ができている必要があります。

つまり、jmod を jdeps と組み合わせて使用​​することはできません。

解決

この場合、解決策は簡単です。jmod ではなく、 JavaFX SDKの jar を使用します。

jdeps --module-path Y:\javafx-sdk-11.0.2\lib --add-modules javafx.base Test.jar
于 2019-02-19T22:00:05.870 に答える