这是我创建的一个小程序项目的目录结构。
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?