I'm fairly new to Java, trying to make my first significant Japplet. It's a small BlackJack game with a swing interface. I'm trying to display GIF images of the card faces, but I can't get the GIF images to load. I keep getting security exceptions saying the applet doesn't have read access.
I've got the class files and images packaged in a JAR file. The image files are stored in a folder named "cardfile". Here's the java code I use to read the images:
I can run my applet from AppletViewer within my IDE (Netbeans), but I can't run it from disk or my webserver. Here are the runtime exceptions I keep getting:
java.security.AccessControlException: access denied (java.io.FilePermission cardfile/blank.GIF read) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkRead(Unknown Source) at sun.awt.SunToolkit.getImageFromHash(Unknown Source) at sun.awt.SunToolkit.getImage(Unknown Source) at GUItype.<init>(GUItype.java:61) at Hello1.init(Hello1.java:66) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exception in thread "thread applet-Hello1.class" java.lang.NullPointerException at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source) at sun.plugin.AppletViewer.showAppletException(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Like I said, I'm new to Java, but best I can tell it says I don't have file permission to read the GIF files. I thought that Applets could read files stored within the same codebase that they were launched from, without any special security settings. When I remove the attempts to read the images, the applet works fine. Any ideas?
Hello, Try using Applet.getImage() instead of Toolkit.getImage(). There may be a difference. In fact, you can probably just replace the above three lines with this:
> -----BEGIN PGP SIGNED MESSAGE----- > Hello, > Try using Applet.getImage() instead of Toolkit.getImage(). There may be > a difference. In fact, you can probably just replace the above three > lines with this: