java - 如何摆脱这个 java.io.EOFException?

标签 java image file exception applet

我想知道我的 java 小程序中的这段代码有什么问题:

for (int i = 0; i < 12; i++)
    {
        try {
            JOptionPane.showMessageDialog(null, "CodeBase: " + getCodeBase());
            JOptionPane.showMessageDialog(null, "Earl: " + new URL(getCodeBase(), "../animation/MonkeyAnimX" + String.valueOf(i) + ".jpeg"));
            preparedartwork[i] = getImage(new URL(getCodeBase(), "../animation/MonkeyAnimX" + String.valueOf(i) + ".jpeg"));
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
        }
    }

当抛出异常时,它会显示:

java.security.AccessControlException: access denied (java.io.FilePermission /var/www/animation/MonkeyAnimX0.jpeg read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:399)
at java.security.AccessController.checkPermission(AccessController.java:558)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
at sun.awt.image.URLImageSource.<init>(URLImageSource.java:55)
at sun.applet.AppletImageRef.reconstitute(AppletImageRef.java:51)
at sun.misc.Ref.get(Ref.java:64)
at sun.applet.AppletViewer.getCachedImage(AppletViewer.java:395)
at sun.applet.AppletViewer.getImage(AppletViewer.java:390)
at java.applet.Applet.getImage(Applet.java:259)
at MonkeysTyping.init(MonkeysTyping.java:213)
at sun.applet.AppletPanel.run(AppletPanel.java:437)
at java.lang.Thread.run(Thread.java:679)

为了确保不会因为缺少权限而引发此异常,我对其进行了更改,以便每个人和 -thing 都拥有操作这些文件的所有权限。 (-> cmod 777) 我从教程中得到了这段代码,那么有什么问题吗?

最佳答案

默认情况下,Applet 不允许访问文件系统。当您将文件系统暴露给外部网络时,这是一个主要的安全风险。您可以阅读更多here .

关于java - 如何摆脱这个 java.io.EOFException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18287253/

相关文章:

Jquery UI 自动完成 - 图像位于结果叠加层中,而不是像演示那样位于外部

java - 检查 ArrayList<String> 中的每个字母是否是某个字符?

android - 如何在我的 android gridview 中显示来自互联网的图像并显示完整图像?

java - 无法初始化 Log4j - SLF4JLoggerContextFactory

ios - iPhone 4 英寸和 4.7 英寸屏幕的图像缩放

file - 编辑文件总是有 O(N) 时间复杂度吗?

c - POSIX 文件描述符和 C 文件的交互

java - 在java中创建一个二进制文件

java - 将一维数组处理为 a[ (b=c) [index]]。这是什么意思?

java - Red5 屏幕共享在 Ubuntu 中不起作用