【发布时间】:2014-01-15 09:13:11
【问题描述】:
我正在尝试制作一个 mp3 播放器,我使用了 javazoom 库。我将 mp3 路径保存在 library.txt 文件中以重新打开它们。打开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 运行之间有什么区别。
【问题讨论】:
-
请粘贴完整的异常堆栈跟踪并指出获取异常的代码行
-
File file = new File("mp3.mp3"); try { player.open(file); <--- Error Line }错误信息:javazoom.jlgui.basicplayer.BasicPlayerException: javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file//同样的错误 - 我也试图打开一个不存在的文件;错误不同,它直接说它不存在。 它仍然适用于 eclipse 运行 -
.mp3 是否在 jar 文件中?如果是这样,我相信您需要先提取它才能获取文件,除非您的音频 API 支持使用 JarEntry 类型以及 File 对象。
-
不,它是一个外部文件。
-
这很令人困惑。我想知道路径中的空格是否有东西绊倒,您可以尝试像
"/tmp/sample.mp3"这样更简单的路径吗?