第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JavaFX 從 jar 播放聲音時出現(xiàn) java.lang.NoClassDef

使用 JavaFX 從 jar 播放聲音時出現(xiàn) java.lang.NoClassDef

30秒到達戰(zhàn)場 2023-03-02 09:51:47
我希望能夠播放 mp3 文件中的聲音,我看到了推薦使用 JavaFX 的帖子。我實現(xiàn)了 MediaPlayer 并初始化了 JFXPanel,在 eclipse 中,一切都很好。然而,當我導出到一個可運行的 jar 并嘗試運行該程序時,我收到以下錯誤消息:java.lang.NoClassDefFoundError: javafx/scene/media/MediaException。我認為這是由于在較新的 JRE 版本中排除了 JavaFX(這是我在搜索解決方案時遇到的)。我的主要問題是如何使用 JavaFX 發(fā)送 jar?我是否必須包括一個罐子,如果是,我從哪里得到它?因為如果我沒記錯的話,eclipse 似乎不會將 JavaFX 打包到我的可運行程序中。這里有一個例子,對我來說,已經觸發(fā)了這種行為:// This would throw a java.lang.NoClassDefFoundError for the JFXPanel but is effectively the same problempublic class Test extends Application{    public static void main(String[] Args)    {        launch(Args);    }    @Override    public void start(Stage primaryStage) {        primaryStage.setTitle("Hello World!");        StackPane root = new StackPane();        primaryStage.setScene(new Scene(root, 300, 250));        primaryStage.show();    }}感謝您的幫助!
查看完整描述

2 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

JavaFx 被移除到 JDK> = 11 中,現(xiàn)在是一個單獨的項目 opensurse [openjfx] ( https://openjfx.io/ )?,F(xiàn)在創(chuàng)建一個可在任何地方運行的應用程序 javafx 版本變得更加困難,但它是一個不斷發(fā)展的過程,我認為這是很好的文檔 [doc-image-live] ( https://openjfx.io/ openjfx-docs/#modular)。


我在開發(fā) JDK 1.8 時遇到了類似的問題,但在我的版本 java 系統(tǒng)中是 openjdk11,我認為這是相同的情況。


您的示例是錯誤的,因為它不是 JavaFX 應用程序。JavaFX 應用程序必須擴展javafx.application.Application并在主調用方法launch ,該方法將調用從 Application 繼承的方法start 。


這是 Oracle 的一個簡單示例


public class HelloWorld extends Application {

    public static void main(String[] args) {

        launch(args);

    }


    @Override

    public void start(Stage primaryStage) {

        primaryStage.setTitle("Hello World!");

        Button btn = new Button();

        btn.setText("Say 'Hello World'");

        btn.setOnAction(new EventHandler<ActionEvent>() {


            @Override

            public void handle(ActionEvent event) {

                System.out.println("Hello World!");

            }

        });


        StackPane root = new StackPane();

        root.getChildren().add(btn);

        primaryStage.setScene(new Scene(root, 300, 250));

        primaryStage.show();

    }

}

ps:說javafx的時候一定要加上java版本,因為我們不知道你的java版本


查看完整回答
反對 回復 2023-03-02
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

如果您不想使用 JavaFX,另一種方法是使用源自 JavaZOOM 的庫來完成讀取 mp3 文件的任務。我在 github 上看到許多源自此來源的產品,例如https://github.com/goxr3plus/java-sound-libraries但我自己并沒有使用過這個特定的庫。

我的偏好是將用于 GUI 的 JavaFX 與 javax.audio.sampled 以及我構建的依賴于 java.sound.sampled.SourceDataLine 輸出的庫相結合。但我從來沒有費心去實施閱讀 mp3。在使用壓縮音頻資源時,我傾向于采用 ogg/vorbis 路線。


查看完整回答
反對 回復 2023-03-02
  • 2 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號