Re: problem: security using IDE's appletviewer
bH wrote:
Hi All,
Viewing an image, this applet, which compiles and shows an
image in the browser page IE with no error.
The image is located >outside< of the program folder.
I am having the problem with the IDE's appletviewer that
will not allow a image file to be read. The error
message on the AppletViewer's message bar at run time is:
exception:java.security.AccessControlException:Access
denied(java.io.FilePermission \C:\JBsm.jpg
read)
That said, I have looked at Canadian Mind Products
> P words > policy
The instructions say to use:
grant {
permission java.security.AllPermission;
};
I have added these lines above but now there is an error at
compile time for this applet:
<identifier> expected (obviously after the word "grant")
Something is missing but I have no idea. I am using
jdk1.5.0_12 and jre1.5.0_12
and stored in that same folder is there jre1.6.0_03 and
jre1.6.0_05
Thanks in advance for your help.
Here is the applet code:
import java.awt.*;
import java.applet.Applet;
import java.awt.Image;
public class ImageApplet extends Applet
{
private Image ioStream;
private String errorMessage = null;
public void init() {
try
{
//ioStream = getImage(getCodeBase(),
// "image/JBsm.JPG" );
//above line works with both the IE browser page
// and applet viewer
ioStream = getImage(getCodeBase(),
"file:/C:/JBsm.JPG" );
//above line works with the Browser page but fails
//using the applet viewer
//Insure image is downloaded before showing it
MediaTracker tracker = new MediaTracker( this );
tracker.addImage( ioStream, 0 );
tracker.waitForID( 0 );
repaint();
}
catch (InterruptedException netProblem )
{
errorMessage = "Could not reach image";
}
}
public void paint( Graphics display)
{
if ( errorMessage == null )
display.drawImage( ioStream, 0, 0, this );
else
display.drawString( errorMessage, 10, 10 );
}
}
bH
If you are using the appletviewer or browser to read files from the
local disk, they must be in the same directory as the applet class
files. When downloading from the net, the files to be read must be
served up by the same server that served the applet class files.
As for the MediaTracker, it is redundant in your code. If you don't
need any information from the Image before displaying it, the
ImageObserver (the 'this' in the drawImage() method) will do everything
you need to get the image drawn. Also the repaint() call is not
required either.
As Mark mentioned, you can embed the image file into a jar and serve
them up that way.
If you jar up your Applet, access the image file with;
getImage(getClass().getResource("fname.jpg"));
You can specify a directory for the image file but that directory must
be stored in your .jar file.
--
Knute Johnson
email s/nospam/linux/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access