繁体   English   中英

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

[英]Cannot read from an runnable Jar file

我正在尝试制作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运行之间有什么区别?

好吧,这很难发现。

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

但是您说过该程序使用eclipse可以完美运行,因此问题变成了在eclipse和普通jar文件中运行之间的区别。

首先,eclipse不能直接使用java.exe或javaw.exe来执行。 而是,eclipse使用一些自定义的库来重定向控制台,处理异常等。(这与您的问题无关)

第二,eclipse将自动为您设置工作目录(到项目根目录),其中可能包含一些必要的本机库。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM