web-dev-qa-db-ja.com

vscode:エラー:メインクラスファイル\ javaafx-sdk-11.0.2 \ libを見つけることができませんでした。

Visual StudioコードでJavaFX-11を設定しようとしています。

私はこの記事を見つけました vscodeを持つJavaFX-11 、それはどのように行うかを説明し、そしてステップに従った。

ただし、launch.jsonファイルのvmArgsのエントリを追加することで、JavaFX SDKへのモジュールパスを含める必要があります。

{
"configurations": [
    {
        "type": "Java",
        "name": "CodeLens (Launch) - Main",
        "request": "launch",
        "vmArgs": "--module-path C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib --add-modules javafx.controls,javafx.fxml",
        "mainClass": "hellofx.Main",
        "projectName": "hellofx"
    }
]

}

vmArgsエントリで見ることができるように、JavaFX SDKへのローカルパスです。ただし、プログラムを実行しようとすると、次のエラーが発生します。

エラー:メインクラスファイル\ java\javafx-sdk-11.0.2\libが見つからなかった場合:java.lang.ClassNotFoundException:files\java\javafx-sdk-11.0.2\lib

過去数時間で私はそれがうまくいかない理由を理解しようとしています。私は議論を間違って書いていますか?私は.jmodsファイルがあるのを見ました。それらのファイルをダウンロードする必要がありますか?モジュールパスを指定する方法は他にありますか?

私がWindows 10でVisual Studioコードを実行していることを言及する価値があるので、私はバックスラッシュを使用するためにエスケープシーケンスを使用する必要があります。

6
Franklin Bello

あなたが投稿したエラーによってわかるように:

エラー:メインクラスファイルを見つけたりロードしたりできなかった\ java\javafx-sdk-11.0.2\lib

問題が_Program Files_で持っているスペースに関連があることは明らかです。

ソリューション

考えられる解決策として、JavaFX SDKをそのパスにスペースを表示せずにフォルダに移動し、それに応じてVMARGを設定することができます。

_"vmArgs": "--module-path C:\\Java\\javafx-sdk-11.0.2\\lib --add-modules javafx.controls,javafx.fxml",
_

それでも、現在のアプローチを維持したい場合は、パスをスペースで設定する方法を見つける必要があります。

同様の 問題 に基づいて、それを見つけることができます。

スペースを含むパスは、(エスケープ)二重引用符で囲む必要があります。

だからあなたの訴訟の解決策になるでしょう。

_"vmArgs": "--module-path \"C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib\" --add-modules javafx.controls,javafx.fxml",
_

(注)これは、_.classpath_ファイルをJavaFX JARSで追加したpathには適用されません。

_<classpathentry kind="lib" path="C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib\\javafx.base.jar"/>
_
2
José Pereda

私の環境変数を取り囲む二重引用符を追加するIntellij私のために解決されました:

PATH_TO_FX="C:\Program Files\Java\javafx-sdk-11.0.2\lib"
 _
0