找不到模块:javafx.controls

我已下载JavaFX SDK PATH_TO_FX,按照以下说明解压缩并设置系统变量。我使用以下代码示例:


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();

    }

}

尝试使用建议的模式进行编译:


javac --module-path $ PATH_TO_FX --add-modules javafx.controls HelloFX.java


但是编译器抛出错误:找不到模块:javafx.controls。Windows 10. Java和JavaFX版本为11.0.1


再说一次:我添加了--add-modules javafx.controls行


catspeake
浏览 2128回答 4
4回答

喵喵时光机

我还必须包括“ lib”目录: --module-path %PATH_TO_FX%;%PATH_TO_FX%\lib 以便进行编译。

阿波罗的战车

此问题分3步解决。在命令行中使用%PATH_TO_FX%代替$ PATH_TO_FX。重新创建变量(系统变量和用户变量)PATH_TO_FX,并将其值括在引号中。由于目录“ C:\ Program Files \ Java \ javafx-sdk-11.0.1 \”包含空格,因此导致错误“无效标志”。重新启动计算机以更新变量。

哆啦的时光机

由于JavaFX未包含在“默认” JDK中,因此我发现针对此类问题的最简单解决方法是使用Bellsoftware的LibericaJDK(11+),该软件再次包含JavaFX,从而使开发和运行JavaFX应用程序变得更加容易。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java