无法从可运行的Jar文件中读取

时间:2013-12-27 19:13:24

标签: java eclipse file jar mp3

我正在尝试制作一个MP3播放器而我使用的是javazoom库。我在library.txt文件中保存mp3路径以重新打开它们。打开jar文件中的library.txt没有任何问题。

通常使用eclipse程序它运行良好但是当我创建一个jar文件时问题就开始了。 我不能使用绝对路径用我的jar文件打开任何mp3文件。

 File file = new File("/Users/orcungumus/Music/iTunes/iTunes Media/Music/Bruno Mars/Unorthodox Jukebox/1-16 16 Locked Out of Heaven.mp3");
        try {
            player.open(file);
        } catch (BasicPlayerException e1) {
            JOptionPane.showMessageDialog(null, e1.toString(),
                    "Error", JOptionPane.INFORMATION_MESSAGE);
        }

为了使思考更容易理解我直接使用文件的路径。它适用于eclipse,但使用jar文件时无法打开文件。

这是我所犯的错误:

enter image description here

如果重要的是我使用mac os。

编辑:我意识到这不是关于通过使mp3路径相对的绝对路径。库提供有关音频格式的错误。所以,问题仍然存在。可运行的jar文件版本和项目的eclipse运行之间可能存在差异。

1 个答案:

答案 0 :(得分:0)

好吧,这很难找到。

现在你的问题是无法打开我无法处理的音频文件。

但是你说程序使用eclipse完美运行,所以问题就变成了 在eclipse和普通jar文件中运行的区别。

首先,eclipse不直接使用java.exe或javaw.exe来执行。相反,eclipse使用一些自定义库来重定向控制台,处理异常等。 (这对你的问题没什么影响)

SECOND,eclipse会自动为你设置工作目录(到项目根目录),其中可能包含一些必要的本地库。

THIRD,eclipse还为库的本机位置定义了一些路径,我想你可以使用eclipse内置导出来创建jar文件,但不包括本机库。

第二个和第三个区别可能对您有所帮助,因为它们对jar文件非常有效。 我刚刚浏览了javazoom,我不知道是否有本机库。如果不, 对不起,您必须找到其他解决方案。