VSCode : Error: Could not find or load main class Files\Java\javafx-sdk-11. 0.2\lib 中的 JavaFX-11

标签 javafx visual-studio-code java-11 javafx-11 module-path

我一直在尝试在 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 中看到的那样entry,是我到 JavaFX SDK 的本地路径。但是,当我尝试运行该程序时,出现以下错误:

Error: Could not find or load main class Files\Java\javafx-sdk-11.0.2\lib Caused by: java.lang.ClassNotFoundException: Files\Java\javafx-sdk-11.0.2\lib



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

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

最佳答案

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

Error: Could not find or load main class 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",

虽然这可行,但如果您仍想保留当前的方法,则必须找到一种方法来设置带有空格的路径。

基于类似的 issue ,你可以发现:

Paths containing spaces should be surrounded by (escaped) double quotes



因此,这将是您的解决方案:
"vmArgs": "--module-path \"C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib\" --add-modules javafx.controls,javafx.fxml",

请注意,这不适用于 path添加到 .classpath带有 JavaFX jar 的文件,如下所示:
<classpathentry kind="lib" path="C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib\\javafx.base.jar"/>

关于VSCode : Error: Could not find or load main class Files\Java\javafx-sdk-11. 0.2\lib 中的 JavaFX-11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54966653/

相关文章:

java.security.NoSuchAlgorithmException : PKCS11 KeyStore not available, 尝试在 java 11 中使用 SUNPKCS11 启用 FIPS 模式

JavaFX:如何选择平铺并添加数字和边框线?

JavaFX FXML Controller ClassNotFoundException

java - 如何在 JavaFX TableView 中的一行悬停时发生一些事情?

node.js - VSCode 的 launch.json 中的 args 和 runtimeArgs 有什么区别?

linux - Vscode 集成终端与 Linux 终端与 git 的工作方式不同

java - 更改 disableProperty() 函数的颜色/如何禁用单击舞台

visual-studio-code - 如何在 VS 代码中更改文件夹的图标?

java - 从 5.4 升级到 6.8.3 后如何解决 gradle tls 连接?

java - JDK11 迁移 : Compilation error shown in Eclipse 2018-12 but code runs fine