Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse bug:javax.imageio.IIOException:Can';无法读取输入文件_Java_Eclipse_Javax.imageio - Fatal编程技术网

Eclipse bug:javax.imageio.IIOException:Can';无法读取输入文件

Eclipse bug:javax.imageio.IIOException:Can';无法读取输入文件,java,eclipse,javax.imageio,Java,Eclipse,Javax.imageio,以下代码在BlueJ IDE中成功运行,但在Eclipse中未成功运行 String path="images/pic1.jpg"; BufferedImage myPicture = null; try { myPicture = ImageIO.read(new File(path)); } catch (IOException e) { // TODO Auto-generated catch block e.printSt

以下代码在BlueJ IDE中成功运行,但在Eclipse中未成功运行

String path="images/pic1.jpg";

BufferedImage myPicture = null;
    try {
        myPicture = ImageIO.read(new File(path));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
我的映像路径在两个IDE中都是相同的。另外,我观察到*.class文件和图像文件的目录结构是相同的

为什么只有在eclipse中才会发生这种情况?

试试这个

String path="d:\\images\\pic1.jpg";

BufferedImage myPicture = null;
    try {
        myPicture = ImageIO.read(new File(path));
    } catch (IOException e) {
        e.printStackTrace();
    }

请确保您的图像文件夹是资源文件夹(这意味着它在类路径上)并写入

  BufferedImage myPicture = null;
   try {
      myPicture = ImageIO.read("images/pic1.jpg");
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
或者使用替代方案

   BufferedImage myPicture = null;
   try {
      myPicture = ImageIO.read(this.getClass().getResource("/images/pic1.jpg"));
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

Eclipse将默认文件位置设置为根bin文件夹,而不是根或包文件夹。确保您的文件在bin文件夹中。

只需使用
System.out.println(System.getProperty(“user.dir”))检查图像路径即可

您必须使用

System.getProperty("user_dir")+File.separator+"image"+File.separator+"im0001.jpg";

这不是Eclipse错误。您需要将图像文件复制到Eclipse项目主文件夹(不是src子文件夹)。

Eclipse中的默认库不支持“ImageIO”。

IMO源代码永远不需要超过一行的“空白”。这双重适用于发布到SO的代码。这不是什么大问题!!但使用绝对路径是一种坏习惯。此代码不会在其他计算机上运行。请告诉我此问题的解决方案。
“images/pic1.jpg”
是应用程序资源吗?“应用程序资源”可能是用于按钮或菜单项、应用程序BG或splash等的图标。如果是这样,则代码使用了完全错误的方法。它应该通过URL从运行时类路径访问图像。将进一步解释是否提出了智能问题。在调用
read
之前,您应该
断言该文件存在,以排除更多失败的可能性。如果我使用运行时类路径,那么我应该包含指向该文件的图像路径。我的问题是,在java应用程序中使用来自文件的图像的正确方法是什么?在BlueJ IDE中,这两种代码都工作得很好。但在Eclipse中,这两个都没有运行.ImageIO.read(this.getClass().getResource(“/images/pic1.jpg”);正在Eclipse中工作。