【问题标题】:JavaFX project cannot find external libs using Java 11JavaFX 项目找不到使用 Java 11 的外部库
【发布时间】:2019-08-02 23:38:35
【问题描述】:

我正在使用OpenJDK 11IntelijIDEA 2019.2javafx-sdk-11.0.2

在编写 JavaFX 项目时,我尝试从 maven 项目添加外部可运行 jar,但 IntelijIDEA 没有看到该 jar 的类。

我做了什么:

我添加为外部库自己的 jar。

在项目树中我找到了它:

但我无法创建类对象并使用包含此 jar 的方法:

为什么会这样?

【问题讨论】:

    标签: java javafx jar


    【解决方案1】:

    如果是模块化项目
    原因是使用了文件module-info.java。众所周知,JavaFX 11 不再是 JDK 的一部分。所以,我们需要在我们的包的根目录添加这个特殊的文件,比如:

    module modulename {
        requires javafx.fxml;
        requires javafx.controls;
    
        opens package;
    }
    

    从这一刻起,您很可能找不到类,直到您在此代码中单独添加您的 jar,例如:

    requires name_of_jar;
    

    只有在添加后,您才能使用外部库中的类/方法。


    如果是非模块化项目
    正如mipa 所说,您可以关注these instructions 作为替代方式。


    相关链接:

    【讨论】:

    • 只是为了避免混淆。为了使用 JavaFX 11 或更高版本,您不必模块化您的应用程序,也无需创建任何 module-info.java 文件。只需按照此处的说明进行操作:openjfx.io/openjfx-docs
    • 谢谢,mipa,有用的信息。我会将它作为替代方式添加到答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2014-06-16
    相关资源
    最近更新 更多