Java:从与 java 个文件相同的文件夹中读取图像

Java: Reading in an image from same folder as java files

我有代码可以从与 java 文件相同的目录中读取图像文件,但目前我只能在给出完整路径的情况下让它工作。

picture = new JLabel(new ImageIcon(ImageIO.read(new File("C:\Users\...\ogre.png"))));

图像与 java 文件位于同一文件夹中。但是当我只尝试 "ogre.png"".\ogre.png" 或类似的方法时,它不起作用。

我的问题是:

  1. 我最终会导出到 JAR,这会影响创建 jar 后的效果吗? (我假设是的,因为创建 jar 不会更改源代码)。

  2. 如何从同一文件夹而不是确切的文件路径读取文件,例如在要移动包含文件夹的情况下。

这是标准方法...(当所有东西都在罐子里时它会起作用)

URL url = OneOfYourClass.class.getResource("package/pathTo/image/ogre.png");           
ImageIcon image = new ImageIcon(url);

OneOfYourClass 是你拥有的 class(可能是主要的 class)

package/pathTo/image/ 是从这个 class 找到你的图片的路径