VSCode 中的 JavaFX-11:错误:找不到或加载主类 Files\Java\javafx-sdk-11.0



我一直在尝试在Visual Studio Code中设置JavaFX-11。

我找到了这篇文章 JavaFX-11 with VSCode,它解释了如何做到这一点,并按照步骤操作。

但是,我需要通过在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 的本地路径。但是,当我尝试运行该程序时,出现以下错误:

错误:找不到或加载主类 Files\Java\javafx-sdk-11.0.2\lib 由以下原因引起: java.lang.ClassNotFoundException: Files\Java\javafx-sdk-11.0.2\lib

在过去的几个小时里,我一直试图弄清楚为什么它不起作用。我写错了论点吗?我看到有.jmods文件。我应该下载这些文件吗?还有其他方法可以指定模块路径吗?

值得一提的是,我在Windows 10中运行Visual Studio Code,所以我必须使用转义序列来使用反斜杠。

正如您发布的错误所见:

错误:找不到或加载主类文件\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",

请注意,这不适用于使用 JavaFX jar 在.classpath文件中添加的path,如下所示:

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

IntelliJ中在我的环境变量周围添加双引号为我解决了:

PATH_TO_FX="C:Program FilesJavajavafx-sdk-11.0.2lib"

** 如果您在 Eclipse 上遇到此错误** "启动层初始化期间出错 java.lang.module.FindException: Module javafx.controls not found">

从项目的构建路径中删除 JavaFX SDK 库!!

相关内容

  • 没有找到相关文章

最新更新