javafx - VSCode 中的 JavaFX-11:错误:无法找到或加载主类 Files\Java\javafx-sdk-11.0.2\lib
问题描述
我一直在尝试在 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,所以我必须使用转义序列来使用反斜杠。
解决方案
从您发布的错误中可以看出:
错误:无法找到或加载主类 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"/>
推荐阅读
- python - 有没有办法将具有值范围的列添加到 Spark Dataframe?
- javascript - 有没有办法将类的实例与该类实例的数组中的元素进行比较?
- android - 约束布局中心文本位置并结束对其他小部件的引用
- java - Java Android,默认文本视图颜色为灰色,看起来像提示文本颜色,如何纠正?
- javascript - 在javascript中函数执行期间使用参数进行操作的规则
- c# - 逐行读取文件时,如何将元素添加到数组中?
- python - Python - 读取包含字节和字符串的文件
- java - 我的 android studio 项目有问题
- javascript - 如何在 Formik 中使用 datalist 输入?
- python - 用于熊猫`idxmax`方法的时间复杂度/算法