为了账号安全,请及时绑定邮箱和手机立即绑定

无法访问类 com.sun.javafx.util.Utils

无法访问类 com.sun.javafx.util.Utils

动漫人物 2022-12-15 16:57:56
我已按照本指南将 JavaFX 安装到 Linux 机器上。首先我安装了 Java 11asus@asus-pc:/usr/share/openjfx/lib$ java -versionopenjdk version "11.0.3" 2019-04-16OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu219.04.1)OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu219.04.1, mixedmode, sharing)asus@asus-pc:/usr/share/openjfx/lib$ 然后我从命令安装了 OpenJFXsudo apt-get install openjfx asus@asus-pc:/usr/share/openjfx/lib$ ls javafx.base.jar      javafx.graphics.jar  javafx.swing.jar javafx.controls.jar  javafx.media.jar     javafx.web.jar javafx.fxml.jar      javafx.properties    src.zip asus@asus-pc:/usr/share/openjfx/lib$ 然后在 Eclipse 中创建了一个库。然后我将它包含到我的 java 项目中。我尝试运行这段代码:package se.danielmartensson.start;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{    /*     * Start the start(Stage front)     */    public static void main(String[] args) {        launch();    }    @Override    public void start(Stage front) throws Exception {        Parent root = FXMLLoader.load(getClass().getResource("/JUSBPlotter/src/se/danielmartensson/fxml/front.fxml"));        Scene scene = new Scene(root);        front.setScene(scene);        front.setTitle("Fracken");        front.show();    }}
查看完整描述

5 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

使用 JDK 14 的 IntelliJ IDEA 2020.1 也有同样的问题。


如果您使用 maven ,最后通过在module-info.java下面添加一个这样的解决方案:src/main/java


module sample {

    requires javafx.controls;

    requires javafx.graphics;


    opens sample;

}



查看完整回答
反对 回复 2022-12-15
?
函数式编程

TA贡献1807条经验 获得超9个赞

转到 Run>Run Configurations 然后 Arguments 选项卡并转到 VM Arguments 并粘贴以下代码以添加模块“--module-path /path/to/lib --add-modules javafx.controls,javafx.fxml”记得修改/path/to/lib 到你的路径你的图书馆然后点击应用你就设置好了



查看完整回答
反对 回复 2022-12-15
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

我按照你说的做了,但在那之后我遇到了一些其他的例外,所以我想出了下面的代码:


module {pkg}{

   requires javafx.controls;

   requires javafx.graphics;

   requires javafx.fxml;


   exports {pkg of Application class};


   opens {pkg};

}

之后你需要重建你的项目可能是因为 Kotlin 的一些异常。然后我看到异常“位置未设置”。要解决此问题,您必须以“/”开头的 fxml 位置,例如:


App.class.getResource("/form.fxml");

编辑


我在JavaFxHelloWorld使用 Gradle 创建了一个 HelloWorld 项目。


查看完整回答
反对 回复 2022-12-15
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

谢谢,对我来说如下


public void start(Stage primaryStage) throws Exception{

        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));

module-info.java:


module sample {

    requires javafx.controls;

    requires javafx.graphics;

    requires javafx.fxml;

    opens sample ;

}


查看完整回答
反对 回复 2022-12-15
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

正如marco-rosati#638 issue 中提出的那样,如果您使用的是 Maven,则只需添加此插件即可:

<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-surefire-plugin</artifactId>

    <version>3.0.0-M5</version>

    <configuration>

        <argLine> --add-exports javafx.graphics/com.sun.javafx.application=ALL-UNNAMED </argLine>

    </configuration>

</plugin>


查看完整回答
反对 回复 2022-12-15
  • 5 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信