找不到模块: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

原文由 Oksana Oryekhovska 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.4k
2 个回答

问题分 3 步解决。

  1. 在命令行中使用 %PATH_TO_FX% 而不是 $PATH_TO_FX

  2. 重新创建变量(系统和用户) PATH_TO_FX ,将其值括在引号中。由于目录 “C:\Program Files\Java\javafx-sdk-11.0.1\” 包含空格,导致错误“invalid flag”。

  3. 重新启动计算机以更新变量。

原文由 Oksana Oryekhovska 发布,翻译遵循 CC BY-SA 4.0 许可协议

我还必须包含“lib”目录: --module-path %PATH_TO_FX%;%PATH_TO_FX%\lib 才能编译。

原文由 Arilou 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题