Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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
Java 当试图访问代码库目录的父目录时,是否仅在小程序中引发AccesControlException?_Java_Applet_Accesscontrolexception - Fatal编程技术网

Java 当试图访问代码库目录的父目录时,是否仅在小程序中引发AccesControlException?

Java 当试图访问代码库目录的父目录时,是否仅在小程序中引发AccesControlException?,java,applet,accesscontrolexception,Java,Applet,Accesscontrolexception,这是我创建的小程序项目的目录结构 Project |____classes |____src |____resources 小程序位于src目录中 这些类存储在classes目录中 所有图像、声音和其他内容都存储在resources目录中 我的问题是,当我尝试将存储在resources目录中的图像加载到applet(编译时它位于classes目录中)时,JVM会引发AccessControlException。我在stackoverflow上读了很多关于这个的帖子,现在我明白了为什么会这样

这是我创建的小程序项目的目录结构

Project
|____classes
|____src
|____resources
  • 小程序位于
    src
    目录中
  • 这些类存储在
    classes
    目录中
  • 所有图像、声音和其他内容都存储在
    resources
    目录中
我的问题是,当我尝试将存储在
resources
目录中的图像加载到applet(编译时它位于classes目录中)时,JVM会引发
AccessControlException
。我在stackoverflow上读了很多关于这个的帖子,现在我明白了为什么会这样(为了保护用户不访问他的文件)。我还读到,您可以编写策略文件来修复它或签名JAR

这是我加载图像的方式:

Image image = getImage(getCodeBase(),"path/to/the/image/image.png");
我注意到,当要加载的映像位于
子目录之一时,不会引发
AccesControlException
。因此,我不能使用
访问
父目录,然后访问
资源
目录。是否有任何方法可以加载我的图像,而不必将它们放入
classes
子目录,也不必使用策略文件或签名JAR

“我无法使用
访问classes父目录,然后访问resources目录

为什么不呢?总是对我有用。例如,请参阅。不幸的是,它是受信任的(允许它跨站点访问),但如果您运行的是Oracle JRE,您应该能够取消信任请求,以查看类似

在此小程序中:

  • HTML位于(->index.HTML)
  • 代码和代码库位于
  • 源(资源)位于中

底线是,小程序应该能够从主服务器上的任何位置获取资源,服务器将为其提供资源。

感谢您的回复。每次我尝试访问“类”时“在父目录中,oracle jvm引发AccessControlException。也许这与我没有在浏览器中运行applet有关。相反,我使用msdos.Aha中的appletviewer命令行!这就是问题所在。小程序查看器过去没有沙盒,但现在有了,它甚至比网站上的沙盒更紧,原因很简单。
SecurityManager
无法从文件系统中判断站点的“根”在哪里,因此它采取了一种预防措施,只允许子目录被视为“主站点”。至少,这是我在使用它时所能想到的最好结果。是时候在浏览器中进行测试了,离开本地服务器。你是正确的。我在浏览器中测试了小程序,可以访问“类”父目录。谢谢你的帮助!