【问题标题】:Module javafx.controls still not found using both user and system environment variables使用用户和系统环境变量仍然找不到模块 javafx.controls
【发布时间】:2022-01-23 15:25:58
【问题描述】:

所以我已经下载了 JavaFX SDK,我正在使用 IntelliJ Idea 编辑器。我在系统和用户环境变量路径中设置:C:\Program Files\Java\javafx-sdk-17.0.2\lib

这是我正在尝试使用的代码:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle(" ");
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

我将其放入位于 Run -> Edit Configurations 的虚拟机选项中:--module-path %PATH_TO_FX% --add-modules=javafx.controls。但我仍然收到以下错误:java.lang.module.FindException: Module javafx.controls not found

这是一个项目结构

这是使用库的路径:

【问题讨论】:

  • 打开文件 -> 项目结构并在那里检查您的项目 SDK 设置。是不是指向同一个JDK?
  • @ThomasTimbul 我不确定,SDK 版本是 17,java-fx SDK(在全局库中)是 17.0.2,这有关系吗?我上传了截图
  • 看起来正确(右侧显示完整路径)。它是一个模块化项目吗?如果您的项目中有 module-info.java,您可能需要在其中添加 JavaFX 作为依赖项,或删除该文件(使您自己的项目成为非模块化的)。还要检查 JavaFX 插件是否已按照 jetbrains.com/help/idea/javafx.html#check-plugin 启用
  • @ThomasTimbul 我的项目是非模块化的,所以我不明白问题出在哪里
  • @jewelsea 我试图在路径和环境变量上使用引号,但它仍然没有影响任何更改,我也尝试将它添加到没有空格的位置并且发生相同的错误。

标签: java intellij-idea javafx sdk environment-variables


【解决方案1】:

您的第二个屏幕截图显示了模块路径的相对目录,而不是绝对目录。

你的模块路径需要包含C:\,因为那里是你有SDK的地方,否则找不到。

您正在运行 Windows,因此您在 --module-path 中使用的分隔符应该是 \ 而不是 /。无论使用何种分隔符,java 命令可能足够聪明,可以计算出正确的路径,但我不会依赖它。

有关更多故障排除信息和建议,请参阅以下问题的答案:

【讨论】:

    猜你喜欢
    • 2015-09-16
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2019-06-01
    • 2019-01-19
    • 2015-09-12
    相关资源
    最近更新 更多