我一直试图在代码中设置JavaFX-11。
我找到了这篇文章JavaFX-11与VSCode,它解释了如何做到这一点,并遵循了以下步骤。
但是,我需要通过在JavaFX文件中为vmArgs添加一个条目来包含到launch.json 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\JavaFXSDK-11.0.2\lib
在过去的几个小时里,我一直在努力弄清楚为什么它不起作用。我把论点写错了吗?我看到了一些.jmods文件。我应该下载这些文件吗?还有其他方法来指定模块路径吗?
值得一提的是,我正在Windows 10中运行Visual代码,因此我必须使用转义序列来使用反斜杠。
发布于 2019-03-03 13:13:43
正如您从发布的错误中看到的:
错误:无法找到或加载主类文件\Java\JavaFXSDK-11.0.2\lib
很明显,这个问题与您在Program Files中的空间有关。
解决方案
作为一种可能的解决方案,您可以将JavaFX SDK移动到没有空格的文件夹中,并相应地设置vmArgs,如下所示:
"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",注意,这不适用于添加在带有path jars的.classpath文件中的JavaFX,如下所示:
<classpathentry kind="lib" path="C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib\\javafx.base.jar"/>发布于 2021-01-07 06:43:26
在IntelliJ中添加围绕我的环境变量的双引号为我解决了:
PATH_TO_FX="C:\Program Files\Java\javafx-sdk-11.0.2\lib"发布于 2021-03-31 23:18:00
**如果您在Eclipse上出现此错误**“在启动层java.lang.module.FindException:模块javafx.controls未找到时发生了错误”
从项目的构建路径中删除JavaFX SDK库!
https://stackoverflow.com/questions/54966653
复制相似问题