【发布时间】:2011-02-12 07:35:13
【问题描述】:
我尝试将图像添加到 JPanel。如果我指定图像的全名(包括所有文件夹的名称),它会起作用。但我希望我的软件独立于机器(另一台机器的文件夹结构与我的机器不同)。所以,我把我的图像放在源的同一个地方,在我的代码中我只使用图像的名称(没有文件夹的名称)。这是行不通的。我将图像放入可执行文件所在的文件夹中。它不再起作用。那么,为什么它不起作用,我该怎么办?
【问题讨论】:
我尝试将图像添加到 JPanel。如果我指定图像的全名(包括所有文件夹的名称),它会起作用。但我希望我的软件独立于机器(另一台机器的文件夹结构与我的机器不同)。所以,我把我的图像放在源的同一个地方,在我的代码中我只使用图像的名称(没有文件夹的名称)。这是行不通的。我将图像放入可执行文件所在的文件夹中。它不再起作用。那么,为什么它不起作用,我该怎么办?
【问题讨论】:
相对文件名是相对于应用程序的当前目录(由System propertyuser.dir 定义)解析的,不一定是它的源/jar 位置。
如果您想加载与应用程序一起提供的图像(或其他资源),那么最好将它们放入应用程序的 .jar 文件中并使用ClassLoader.getResource() 和/或getResourceAsStream().
【讨论】: