我正在尝试打开.JAR文件时播放歌曲。在Netbeans中它可以正常工作,但是在打开.Jar文件时,仅显示用于场景更改的按钮以及这些场景上的图像。
在FXML的控制器中,我已经初始化了一个用于播放歌曲的线程:
https://outlook.office.com/api/beta/me/calendars/{calendar_id}/events
这将调用具有播放歌曲的线程的类:
@Override
public void initialize(URL url, ResourceBundle rb) {
PlaySong ps = new PlaySong();
Thread thread = new Thread(ps);
thread.start();
}
我的目的是在通过initialize方法打开FXML时开始播放歌曲。
希望你们能提供帮助。
答案 0 :(得分:0)
您的音乐文件应位于项目的“ src”文件中,以便在JAR中进行部署。并且您应该使用“ getResourceAsStream()”来获取声音文件。
答案 1 :(得分:0)
当您从IDE启动应用程序时,您可以访问src文件,因为JVM执行路径是您的项目文件夹。
因此,您将了解,在jar中,您没有项目。在Jar中,执行路径是包含jar的文件夹,您将同意,即使是手动操作,在此文件夹中也找不到src文件夹?
您需要将音乐曲目视为资源而不是文件。我建议您阅读:Location-Independent Access to Resources。
但是在您的情况下:
SomeClass.class.getResourceAsStream("relativePathfromSomeClasstoyourwavFile");
答案 2 :(得分:0)
OS文件系统不会“看到” jar文件。请改用URL。
通常使用相对寻址方案,并将音频放置在某种资源文件夹中。但是您也可以将音频与调用它的类放在同一文件中。或使用“绝对”地址引用项目的根目录(地址以char“ /”开头)。您的选择。
上面的“ duplicate”标记具有代码示例。