VScode中的JavaFX,缺少JavaFX运行时组件,即使我有vmArgs

5uzkadbs  于 2023-06-20  发布在  Java
关注(0)|答案(3)|浏览(234)

我正在使用VScode学习JavaFX,但我不断收到一条错误消息,指出“Error:JavaFX运行时组件丢失,运行此应用程序所需”,尽管在launch.json中输入了vmArgs并将JavaFX添加到引用的库中,如多个教程视频所示。我的vmArgs看起来像这样:

"vmArgs": "--module-path C:/.../Desktop/javafx-sdk-20.0.1/lib --add-modules javafx.controls,javafx.fxml",

我尝试了多个vmArg,包括将JavaFX存储在Download文件夹中,但错误仍然存在。我怀疑我的ConfigureJavaRuntime可能有问题,它似乎是空的,或者是与JAVA_HOME有关的问题。有人能帮我解决这个问题吗?先谢谢你。

wfsdck30

wfsdck301#

标准解决方案为:

  • 按照www.example.com上标题为“JavaFX入门:openjfx.io instructions, entitled Getting Started with JavaFX: JavaFX and Visual Studio Code

我建议(如果你真的想使用Visual Studio),而不是这个答案的其余部分。
另一种解决方案是使用包含JavaFX的JDK。
这些指示对我起作用了。我不保证他们会为你工作或继续工作没有修改在未来。我也不支持这些指令,它们是“原样”呈现的。

Visual Studio Code和Azul Zulu“JDK FX”发行版,其中包含JavaFX

下载并安装适用于您的操作系统和架构的Azul Zulu "JDK FX"。
这里是一个链接到一个例子下载Java 20,OS X,x64,JDK FX包,你可以去链接和更改设置为您的系统,然后下载并运行安装程序(我选择一个.dmg安装程序为Mac).

  • https://www.azul.com/downloads/?version=java-20-sts&os=macos&architecture=x86-64-bit&package=jdk-fx#zulu

这将在您的系统中“某处”安装JDK。在Mac上,您可以通过键入以下内容来查找位置:

/usr/libexec/java_home -V

这表明我:

20.0.1 (x86_64) "Azul Systems, Inc." - "Zulu 20.30.11" /Library/Java/JavaVirtualMachines/zulu-20.jdk/Contents/Home

现在我知道JDK安装在哪里了。
然后,要在Visual Studio中设置JDK,请转到“Java:Visual Studio网站上的“入门”:

选择“Install the Coding Pack for Java-macOS”(如果是您的操作系统,请使用Windows链接)。
VSCode安装完成后,将Zulu设置为默认JDK。为此,您需要遵循Visual Studio文档中的“为项目配置运行时”说明:

这需要你edit setings。键入"Command +"(在Mac上)打开设置,在设置字段中键入:

java.configuration.runtimes

点击显示的链接:"在settings.json中编辑"。
应该编辑并保存json文件,以包含以下部分(在外部{} json结构中):

"java.configuration.runtimes": [
    {
       "name": "JavaSE-20",
       "path": "/Library/Java/JavaVirtualMachines/zulu-20.jdk/Contents/Home",
       "default": true
    }
]

名称必须是JavaSE-NN中的一个,其中NN是Java版本。我使用JavaSE-20,因为这是我从Zulu获得的JDK版本。
路径被设置为我从java_home命令获得的JDK路径。
好了,现在您已经设置了Java和IDE,您必须开始创建您的项目。
在你的机器上创建一个新文件夹(我用Mac上的终端创建了一个名为hellofx的文件夹)。然后在Visual Studio的“欢迎”页面上,选择“打开...”并选择刚刚创建的新文件夹。它会提示你是否信任作者,选择“是的,我信任作者”,如果你信任自己。在左侧的资源管理器中,它会用大写字母列出您的文件夹名称,对我来说,它说“HELLOFX”。在欢迎屏幕上选择“新建文件...”,然后选择“新建Java类”。复制并粘贴HelloFX code from openjfx.io

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloFX extends Application {

    @Override
    public void start(Stage stage) {
        String javaVersion = System.getProperty("java.version");
        String javafxVersion = System.getProperty("javafx.version");
        Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
        Scene scene = new Scene(new StackPane(l), 640, 480);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }

}

选择文件|保存并输入名称“www.example.com”。HelloFX.java ".
点击屏幕左侧的箭头图标,然后按“运行并调试”以运行应用程序。
您的应用将使用JavaFX运行并显示一个窗口,其中包含标签中的文本,类似于下面的内容:

Hello, JavaFX 20.0.1, running on Java 20.0.1.
tag5nh1u

tag5nh1u2#

我所做的是删除Java和所有东西,重新下载所有东西,然后遵循下面的JavaFX入门:JavaFX和Visual Studio Code。成功了

p8h8hvxi

p8h8hvxi3#

最好使用Java11及以上版本。而vmArgs是在 * launch.json * 中配置的,需要使用Run and Debug进行调试,或者在Run菜单下使用Start DebuggingRun Without Debugging

JavaFX and Visual Studio Code

相关问题