在Eclipse的可运行jar文件中包含图片和声音文件

时间:2014-12-07 21:25:31

标签: java eclipse jar

我在使用Eclipse编写的口袋妖怪游戏中使用了许多声音和图片文件。一切都在Eclipse中完美运行,但当我将它作为一个可运行的jar导出时,我得到一个错误,当我尝试运行它时媒体不可用。

这是我用来播放mp3文件的代码:

    File file = new File("src/pokemon/mp3s/opening.mp3");
    final String mediaLocation = file.toURI().toURL().toExternalForm();
    Media media = new Media(mediaLocation);
    mp = new MediaPlayer(media);

导出为可运行的jar后,我用java -jar Pokemon2.jar执行它并收到此错误消息:

线程中的异常“Main”MediaException:MEDIA_UNAVAILABLE:C:\ Users \ Nick \ Desktop \ src \ pokemon \ mp3s \ opening.mp3 系统找不到指定的路径

如何让我的runnable jar能够找到这些额外的资源?

2 个答案:

答案 0 :(得分:1)

jar中的文件无法作为常规文件访问。相反,你必须使用getResource来访问它们,当它们在罐子里然后出来时就会起作用。

getClass().getResource("/pokemon/mp3s/opening.mp3");

答案 1 :(得分:1)

已部署的jar文件不包含源文件或src文件夹。 您的IDE可以编译源文件并将它们放在其他位置(例如,在build \ classes中的netbeans中)。当您部署项目时,您的mp3文件将出现在该jar文件中,而不是src文件夹中。

你应该尝试另一种方法 假设您的文件存在于 src / pokemon / mp3s / opening.mp3 中 并且 src / pokemon / Referer.java中有一个类

现在,您可以将mp3类作为参考来访问您的Referer文件:

URL fileUrl = Referer.class.getResource("mp3s/opening.mp3");