You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows7 Eclipse开发的Java程序迁移至ChromeBook Ubuntu后纹理加载失败

解决Java纹理加载失败(input == null!)的问题

嗨,作为Java新手遇到这种路径问题真的太正常了,别慌,咱们一步步来搞定它:

核心问题:你用错了getResource()的用法

你现在代码里的Texture.class.getResource(filename)是用来从**类路径(Classpath)**里加载资源的,不是直接读取系统的绝对路径。你传了/home/chronos/Desktop/ThreeD/3d/res/textures/floor.png这种系统绝对路径,它根本不会这么去查找,所以返回了null,才导致ImageIO报那个错。

步骤1:把资源文件夹配置成类路径资源

首先得让你的res文件夹变成项目的"资源目录",这样编译后里面的文件会自动被放到类路径里:

  • 在Ubuntu的IDE里(不管是Eclipse还是其他工具),右键你的项目 → Properties → Java Build Path → Source标签页
  • 点击「Add Folder」,选中你的res文件夹(也就是/home/chronos/Desktop/ThreeD/3d/res),把它添加为源文件夹
  • 这样编译后,res里的所有文件都会被复制到类路径的根目录下

步骤2:修改代码里的路径为相对路径

现在你就可以用类路径的相对路径来访问纹理了,比如你的floor.png在res/textures/下面,路径就写成/textures/floor.png(开头的斜杠代表类路径的根目录):

package com.Three.ThreeD.graphics; 
import java.awt.image.BufferedImage; 
import javax.imageio.ImageIO; 

public class Texture { 
    // 改成类路径相对路径
    public static Render floor = loadBitmap("/textures/floor.png"); 

    public static Render loadBitmap(String filename) { 
        try { 
            BufferedImage image = ImageIO.read(Texture.class.getResource(filename)); 
            int width = image.getWidth(); 
            int height = image.getHeight(); 
            Render result = new Render(width, height); 
            image.getRGB(0, 0, width, height,result.pixels, 0,width); 
            return result; 
        } catch (Exception e) { 
            System.out.println("纹理文件找不到或者加载失败!"); 
            throw new RuntimeException(e); 
        } 
    } 
}

步骤3:注意Ubuntu的大小写敏感!

Windows系统不区分文件名大小写,但Ubuntu是严格区分的!比如你代码里写的是floor.png,如果实际文件是Floor.png或者FLOOR.PNG,系统就会找不到,一定要检查文件名和路径的大小写完全一致。

应急备选方案:直接读取绝对路径(不推荐)

如果暂时不想配置类路径,也可以直接用File类读取系统绝对路径,这样就不用依赖类路径了:

// 替换loadBitmap方法里的ImageIO.read那一行
BufferedImage image = ImageIO.read(new File(filename));

不过这种方法通用性很差,换台电脑路径就得改,还是优先用类路径的方法哦。

最后再检查一遍

  • 确认res/textures/floor.png确实存在,路径没有拼写错误
  • 确认IDE已经把res文件夹设为源文件夹,编译后能在输出目录里看到textures文件夹和图片

这样应该就能顺利加载纹理啦!

内容的提问来源于stack exchange,提问作者Dylan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:47:27