我正在尝试加载一个图像文件(gif),该图像文件本地存储在与Eclipse Java项目相同的目录中:
ref
是gif图像存储的相对路径。
public Sprite getSprite(String ref) {
BufferedImage sourceImage = null;
try {
URL url = this.getClass().getClassLoader().getResource(ref);
if (url == null) {
fail("Can't find ref: "+ref);
}
sourceImage = ImageIO.read(url);
} catch (IOException e) {
fail("Failed to load: "+ref);
}
}
使用上述方法的客户端代码是:
public Entity(String ref,int x,int y) {
this.sprite = ResourceManager.getSprite("sprites/alien.gif");
this.x = x;
this.y = y;
}
在Eclipse工作区中,在我的项目目录中,我有一个文件夹sprites
,其中存储了gif图像。但是客户端代码总是返回:Can't find ref: sprites/ship.gif
我在上面的方法中加载gif图片时做错了吗?在这种情况下,是否有更好的直接方法来执行文件查找?
非常感谢您的任何建议。
该getResource()
方法搜索您的 类路径 以查找文件,可能是 sprites 目录不在您的类路径中。
尝试打开项目属性-> Java Build Path
,选择Libraries
选项卡,然后单击Add Class Folder
按钮,然后选择
sprites 的父目录。
我正在使用Spring MVC和Thymeleaf进行开发。 我正在尝试使用sec:authorize加载JavaScript。换句话说,我只希望在用户经过身份验证时加载这个脚本。下面是我试图开始工作的代码: 最后两个资源我试图使用sec:authorize加载,但它们似乎在每次加载页面时都能处理。这是使用SEC:Authorize的有效方法吗?如果不是,有什么办法可以做到这一点吗?
问题内容: 这个问题困扰了我一段时间。我必须在我的Java应用程序中加载几个文件,到目前为止,我工作的唯一方式是这样的: 但这是丑陋和可怕的。有一阵子我以为我在做这个工作: 但这由于某种原因不再起作用(我必须做些更改并且没有注意到。它返回null。 我应该使用getResource()而不是getSystemResource()(如果这样),为什么getSystemResource()是静态的却不
有没有办法使用使用自定义TTL加载地图条目? 用例:“我的映射”条目都有一个自定义的过期期限,此时该条目不再有效(TTL不仅用于限制内存映射的大小,而且TTL应用于每个条目,而不是映射配置)。我在最初将条目放入映射时设置了此TTL,过期时间将保留在我的基础持久映射数据存储中,但从数据库加载条目时无法重置此TTL。 地图加载器文档似乎表明这可能不可能: 加载的条目将被放置到分布式映射中,它们将保留在
问题内容: 我使用以下方法将jQuery库附加到dom: 但是当我运行时: 控制台报告错误: 如何动态加载jQuery以及将其放入dom中使用它? 问题答案: 这里有一个工作的JSFiddle,上面有一个小例子,它可以确切地说明您正在寻找什么 这种动态加载JavaScript的方法存在一些问题。当涉及到非常基础的框架(如jQuery)时,您实际上可能想静态地加载它们,因为否则,您将必须编写一个完整
问题内容: 我希望对我在Spring中涉及到属性文件的问题有所帮助。所以我的设置是这样的: opto-mapping.properties –该文件位于我的src文件夹中,其中包含针对我的优化资源的翻译,如下所示: 每次运行“优化”构建时,都会更新此属性文件。然后我用 将属性文件导入所需的jsp中。然后通过使用以下内容引用内容: 除了属性文件需要重新启动tomcat重启外,所有这些工作都很漂亮。我
问题内容: 我想知道和之间有什么区别? 编辑:我特别想知道是否在文件/目录级别涉及任何缓存。如“目录列表是否在Class版本中缓存?” AFAIK以下基本上应该做同样的事情,但事实并非如此: 我在摆弄一些报告生成代码时发现了这一点,这些代码可以WEB-INF/classes/从该目录中的现有文件中创建一个新文件。使用Class中的方法时,可以使用找到部署getClass().getResource