Java 我得到一个;Can';t读取输入文件错误“;仅当程序通过终端运行或在另一台计算机上运行时?

Java 我得到一个;Can';t读取输入文件错误“;仅当程序通过终端运行或在另一台计算机上运行时?,java,file,Java,File,我有一个Java程序,我目前正在IntelliJ中工作。程序在启动时从项目文件夹中的文件夹“images”读取一组图像。当我通过IDE运行程序时,它可以正常工作,但是如果我试图通过终端或在另一台计算机上运行程序,启动映像将无法加载,我会收到一个IO错误“无法读取输入文件”,并且启动时将在JPanel上显示的启动映像都不会显示 我猜这与仅在IDE中访问项目文件夹的目录有关,而不是在终端或命令提示符中(尝试了OSX和Windows),当然也不是在另一台计算机上 假设我想将我的整个项目文件夹交给另一台

我有一个Java程序,我目前正在IntelliJ中工作。程序在启动时从项目文件夹中的文件夹“images”读取一组图像。当我通过IDE运行程序时,它可以正常工作,但是如果我试图通过终端或在另一台计算机上运行程序,启动映像将无法加载,我会收到一个IO错误“无法读取输入文件”,并且启动时将在JPanel上显示的启动映像都不会显示

我猜这与仅在IDE中访问项目文件夹的目录有关,而不是在终端或命令提示符中(尝试了OSX和Windows),当然也不是在另一台计算机上

假设我想将我的整个项目文件夹交给另一台计算机上的另一个用户,我将如何使其加载图像,而不管项目文件夹位于何处?我的意思是要加载的图像位于项目文件夹中,所以它们就在那里只是终端/其他计算机找不到它

我是否需要向代码中添加一些内容,以便通过终端或其他计算机找到项目文件夹

以下是我得到的图像:

    initialImages[0] = new Image(0, 100, "images/dog.gif");
    initialImages[1] = new Image(100, 100, "images/cat.gif");
因此,只要写下“images/”+图片的名称,我就可以进入项目文件夹中的images文件夹。但是当我通过终端编译我的项目时,我如何在另一台计算机上工作呢?每当我像那样运行它时,程序不知何故无法理解“images/”。就像只有在我的计算机上通过IDE运行项目文件夹时,它才知道项目文件夹在哪里

创建新文件时,我使用

 this.image = ImageIO.read(new File(String.valueOf(filepath)));

其中“filepath”表示例如“images/dog.gif”。

您的直觉可能是正确的。对您的问题的一般回答是,您的应用程序应该包含它想要读取的图像,并且您应该使用相对路径加载它们。如果你愿意,你可以发布你的项目结构。谢谢你的回答,我更新了我的问题以显示。