我需要它在不将文件导出到计算机的情况下运行。
目前,我存储图像的代码是:
ImageIcon icon = new ImageIcon("images\\images2.gif");
它不能只是一个图像,因为我将它添加到 JLabel。
当我 jar 整个程序时,它将图像文件存储在 jar 中。
当我去运行实际问题时,没有图像。
同样,我不能只将 .jar 留在已包含图像的文件夹中。它必须在单独的计算机上单独运行。
最佳答案
您需要通过系统类加载器获取图像:
URL url = ClassLoader.getSystemClassLoader().getResource("images/images2.gif");
Icon icon = new ImageIcon(url)
images
位于类路径的根目录。
请注意,Java 运行时会将分隔符 (/
) 转换为操作系统特定的分隔符(\
,适用于 Windows)。
关于Java:当一个程序被 .jar 编辑时,它不再读取 jar 文件中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1854557/