2012-11-28 151 views
1

我在写一个必须加载图像的小程序。当我通过appletviewer运行它时,一切正常,所以我的代码应该全部设置。当我尝试在任何浏览器中打开它时,出现AccessControlException错误,说我没有读取权限。我明白,通常这是因为小程序试图访问客户端计算机上的文件。我的.Java,.class和.html文件位于C:/Java,我需要加载的图像位于C:/Java/Images,所以我认为它们应该可以访问,我错了吗?有什么办法让我的小程序以简单的方式加载这些图像?在Java applet中加载图像AccessControlError

回答

1

在浏览器中运行的小程序不具有从本地文件系统打开文件的权限。

您需要将图像添加到jar文件,然后使用getClass().getResource()getClass().getResourceAsStream()加载它。

编辑:Here is an example显示如何在applet中加载图像。

+0

*“您需要将图像添加到jar文件”*或“家庭服务器”。 –

+0

是的,将它们添加到服务器以供小程序进行通信当然可以工作,但可能比OP想要做的更多 - 并且我猜测他或她正在从文件系统打开html文件,不使用服务器。 – GreyBeardedGeek

+1

你让它听起来很难! 'URL url = new URL(getDocumentBase(),“image42.jpg”);'将形成与HTML相同目录中的图像的URL。 –