java - 如何修复UnsatisfiedLinkError?

标签 java javafx audio

我希望使用我的本地声音文件之一来提供背景音乐,但出现以下错误消息:

Caused by: java.lang.UnsatisfiedLinkError: Can't load library: C:\Program Files\Amazon Corretto\jdk1.8.0_232\jre\bin\glib-lite.dll



但是我的代码如下:

public class DungeonGUI extends Application {
    private Dungeon dungeon;
    private Stage stage;
    private GridPane root;
    private Button attack;
    private Button heal;
//    private Button checkInventory;
    private Button save;
    private Text characterHealth;
    private Text characterPower;
    private Text characterInventory;
    private Text monsterHealth;
    private Text monsterPower;
    private File audioFile = new File("C:/Users/15774/Downloads/oof.mp3");

    @Override
    public void start(Stage stage) throws Exception {
        setButtons();
        dungeon = new Dungeon();
        setTexts();
        this.stage = stage;
        root = new GridPane();

        heal.setOnAction(this::onHeal);
        attack.setOnAction(this::onAttack);
        save.setOnAction(this::onSave);

        stage.setTitle("Dungeone Dungeon");
        root.setAlignment(Pos.CENTER);

        setMedia();
        setupRoot();
        setStage(stage);
    }

    private void setMedia() {
        Media media = new Media(audioFile.toURI().toString());
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        mediaPlayer.setAutoPlay(true);
    }


如您所见,我在任何时候都没有调用程序文件。可能是什么问题?

附言:这只是我代码的一部分。如果您需要更多信息,请发表评论。

最佳答案

Amazon's Corretto 8不包含JavaFX support的必要 Artifact 。

您必须集成一些必须在线检查的第三方jar。

您可以使用OpenJFX,它是提供JavaFX支持的开源库。 OpenJFX是OpenJDK的一个项目。

它从JDK 11开始就支持,但是您可以在Corretto 8上尝试它。它可能会起作用。

尝试使用Oracle's JDK version 8 / OpenJDK version 8

注意: Oracle's JDK 8支持JavaFX(它具有JavaFX支持所需的库)。 Open JDK版本8可能包含OpenJFX(您可以检查)。

读这个 :

  • Is JavaFX media supported by Corretto?
  • https://github.com/corretto/corretto-8/issues/26
  • 关于java - 如何修复UnsatisfiedLinkError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60750910/

    相关文章:

    java - 如何链接这两个鼠标事件? JavaFX

    java - 调用 JavaFX 应用程序两次

    java - 是否可以为整个应用程序设置自定义字体?

    java - Spring SseEmitter.complete() 是否应该触发 EventSource 重新连接 - 如何关闭服务器端连接

    JavaFX - 引发异常时初始化相互冲突

    javafx-2 - javafx-2 和 javafx-8 是否弃用了 javafx 标签?

    iphone - 在后台使用MPMoviePlayer播放mp3文件

    javascript - Web 音频/ radio 流客户端 : use Howler. js、 native 音频、其他库?

    audio - windows 10下ffmpeg无法抓取通过扬声器播放的音频

    java - 在 JAVA 中删除字符串中的重复项。不允许使用额外的数据结构