我正在尝试制作一个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文件时无法打开文件。
这是我所犯的错误:
如果重要的是我使用mac os。
编辑:我意识到这不是关于通过使mp3路径相对的绝对路径。库提供有关音频格式的错误。所以,问题仍然存在。可运行的jar文件版本和项目的eclipse运行之间可能存在差异。
答案 0 :(得分:0)
现在你的问题是无法打开我无法处理的音频文件。
但是你说程序使用eclipse完美运行,所以问题就变成了 在eclipse和普通jar文件中运行的区别。
首先,eclipse不直接使用java.exe或javaw.exe来执行。相反,eclipse使用一些自定义库来重定向控制台,处理异常等。 (这对你的问题没什么影响)
SECOND,eclipse会自动为你设置工作目录(到项目根目录),其中可能包含一些必要的本地库。
THIRD,eclipse还为库的本机位置定义了一些路径,我想你可以使用eclipse内置导出来创建jar文件,但不包括本机库。
第二个和第三个区别可能对您有所帮助,因为它们对jar文件非常有效。 我刚刚浏览了javazoom,我不知道是否有本机库。如果不, 对不起,您必须找到其他解决方案。