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コードを実行していることを言及する価値があるので、私はバックスラッシュを使用するためにエスケープシーケンスを使用する必要があります。
あなたが投稿したエラーによってわかるように:
エラー:メインクラスファイルを見つけたりロードしたりできなかった\ 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"/>
_
私の環境変数を取り囲む二重引用符を追加するIntellij私のために解決されました:
PATH_TO_FX="C:\Program Files\Java\javafx-sdk-11.0.2\lib"
_