java.security.AccessControlException:可通过浏览器访问但不在同一服务器内的文件

所以不要重复太多,请参考java google-enpoint api旁边的静态图片 。

从引用的链接可以看出,我可以通过url查看图像。 但是,当我尝试使用类似的代码读取文件名时

public void listFilesForFolder(final File folder) { for (final File fileEntry : folder.listFiles()) { if (fileEntry.isDirectory()) { listFilesForFolder(fileEntry); } else { System.out.println(fileEntry.getName()); } } } final File folder = new File("/home/you/Desktop"); listFilesForFolder(folder); 

我得到一个安全例外

 java.security.AccessControlException: access denied ("java.io.FilePermission" "/myImages" "read") 

有谁知道修复? 为什么通过浏览器的调用显示图像,然而来自服务器本身的调用会引发exception? 我觉得很奇怪。

如果您已将文件配置为“静态”资源,则它将由为服务静态内容而优化的单独服务器池提供。 结果是该文件无法从您的应用程序打开。 “资源”文件可供应用打开和阅读。

这是在这里记录的 。

打开资源时,您需要使用相对路径。 你已经展示了上面的绝对路径。

如果服务器作为服务运行,请确保该服务对您尝试读取的文件夹和文件具有权限。