这是我创建的一个小程序项目的目录结构。
Project
|____classes
|____src
|____resources
- 小程序在
src目录中。 - 类存储在
classes目录中。 - 所有的图像、声音和其他东西都存储在
resources目录中。
我的问题是,当我尝试将存储在resources目录中的图像加载到我的小程序(编译时位于类目录中)时,JVM 会引发一个AccessControlException. 我在 stackoverflow 中阅读了很多关于此的帖子,现在我明白了为什么会这样(保护用户不访问他的文件)。我还读到您可以编写策略文件来修复它或签名的 jar。
这就是我加载图像的方式:
Image image = getImage(getCodeBase(),"path/to/the/image/image.png");
我注意到,AccesControlException当我要加载的图像位于classes子目录之一时,不会出现这种情况。所以我不能..用来访问 classes父目录,然后是resources目录。有什么方法可以加载我的图像而不必将它们放在classes子目录中并且不使用策略文件或签名的 jar?
