提问者:小点点

在Java中使用什么路径来加载图像之类的东西?


我很难弄清楚用什么来加载图像等资产。 我是否会使用完整路径,然后在编译时它会被转换? 还是使用相对路径?

例如,假设我加载一个文件,该文件包含以下目录

C:/users/jordan/project/assets/file.txt

如果我把这个程序打包成一个jar,这个文件还会加载到另一个人的计算机上吗? 这是怎么运作的?


共1个答案

匿名用户

有两种方法可以做到这一点:

  1. 将文件打包为资源。 在本例中,它将进入JAR文件的“asset/file.txt”目录,您将使用路径“asset/file.txt”加载它(通过classloader#getResource(),而不是通过file和相关的类)。
  2. 不要将文件打包为资源。 在这种情况下,您必须将它与JAR一起分发(例如,在ZIP文件或MSI安装程序中),它必须进入目标计算机上与本地计算机上相同的相对位置,并且您将通过相对路径(“assets/file.txt”)加载它。

这两种方法都是有效的。