7

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

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

vmArgs但是,我需要通过在文件中添加一个条目来包含 JavaFX SDK 的模块路径launch.json

{
"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,所以我必须使用转义序列来使用反斜杠。

4

3 回答 3

13

从您发布的错误中可以看出:

错误:无法找到或加载主类 Files\Java\javafx-sdk-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",

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

<classpathentry kind="lib" path="C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib\\javafx.base.jar"/>
于 2019-03-03T13:13:43.057 回答
0

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

PATH_TO_FX="C:\Program Files\Java\javafx-sdk-11.0.2\lib"
于 2021-01-07T06:43:26.453 回答
-1

** 如果您在 Eclipse 上遇到此错误**“启动层 java.lang.module.FindException 初始化期间发生错误:找不到模块 javafx.controls”

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

于 2021-03-31T23:18:00.707 回答