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

Jor*_*ron 2 java

我无法弄清楚使用什么来加载图像等资产。我会使用完整路径然后在编译时它会被转换吗?或者我会使用相对路径?

例如说我用目录加载一个文件

C:/Users/Jordan/project/assets/file.txt

如果我将程序打包为 jar 文件,该文件是否仍会加载到其他人的计算机上?这是如何运作的?

小智 6

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

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

这两种方法都是有效的。