Super26
asked on
Problem Running Java Applet
I am having a problem running a Java program as an applet. I access an MS Access database from my program. I have two runner classes. One is my Java applet and the other is a regular Java application. My program works fine running from the Java applicaton. But when I try to run it as an applet, it gives me the following error:
java.security.AccessContro lException : access denied (java.lang.RuntimePermissi on accessClassInPackage.sun.j dbc.odbc) at java.security.AccessContro lContext.c heckPermis sion(Unkno wn Source) at java.security.AccessContro ller.check Permission (Unknown Source) at java.lang.SecurityManager. checkPermi ssion(Unkn own Source) at java.lang.SecurityManager. checkPacka geAccess(U nknown Source) at sun.applet.AppletSecurity. checkPacka geAccess(U nknown Source) at sun.applet.AppletClassLoad er.loadCla ss(Unknown Source) at java.lang.ClassLoader.load Class(Unkn own Source) at java.lang.ClassLoader.load ClassInter nal(Unknow n Source) at java.lang.Class.forName0(N ative Method) at java.lang.Class.forName(Un known Source)
I have replaced the Java.policy file, giving it the permissions it needs. But somehow that hasn't fixed the problem. I have no idea what else could be wrong. I tried running the applet from Ms-Dos, IBM Visual Age, and an html file, all give me the same problem. But my regular Java application works fine on all of these programs.
I would appreciate it if someone could help me. Thanks.
Shabana
java.security.AccessContro
I have replaced the Java.policy file, giving it the permissions it needs. But somehow that hasn't fixed the problem. I have no idea what else could be wrong. I tried running the applet from Ms-Dos, IBM Visual Age, and an html file, all give me the same problem. But my regular Java application works fine on all of these programs.
I would appreciate it if someone could help me. Thanks.
Shabana
>>keytool -export -alias tstkey -file appletkey.crt
should have read
keytool -export -alias appletkey -file appletkey.crt
If you want more information on these steps, check here:
http://forum.java.sun.com/thread.jsp?forum=63&thread=174214&message=548253
That's where I got this information from.
should have read
keytool -export -alias appletkey -file appletkey.crt
If you want more information on these steps, check here:
http://forum.java.sun.com/thread.jsp?forum=63&thread=174214&message=548253
That's where I got this information from.
ASKER
Isn't there another simpler way like editing the policy file to include a grant permission statement? Hope someone could help me construct another grant permission statement to make my applet access my MS Access database. Thanks a lot. This is what I currently have on my policy file:
grant codeBase "file:${java.home}/lib/ext /*" {
permission java.security.AllPermissio n;
};
grant {
permission java.lang.RuntimePermissio n "stopThread";
permission java.net.SocketPermission "localhost:1024-", "listen";
permission java.util.PropertyPermissi on "java.version", "read";
permission java.util.PropertyPermissi on "java.vendor", "read";
permission java.util.PropertyPermissi on "java.vendor.url", "read";
permission java.util.PropertyPermissi on "java.class.version", "read";
permission java.util.PropertyPermissi on "os.name", "read";
permission java.util.PropertyPermissi on "os.version", "read";
permission java.util.PropertyPermissi on "os.arch", "read";
permission java.util.PropertyPermissi on "file.separator", "read";
permission java.util.PropertyPermissi on "path.separator", "read";
permission java.util.PropertyPermissi on "line.separator", "read";
permission java.util.PropertyPermissi on "java.specification.versio n", "read";
permission java.util.PropertyPermissi on "java.specification.vendor ", "read";
permission java.util.PropertyPermissi on "java.specification.name", "read";
permission java.util.PropertyPermissi on "java.vm.specification.ver sion", "read";
permission java.util.PropertyPermissi on "java.vm.specification.ven dor", "read";
permission java.util.PropertyPermissi on "java.vm.specification.nam e", "read";
permission java.util.PropertyPermissi on "java.vm.version", "read";
permission java.util.PropertyPermissi on "java.vm.vendor", "read";
permission java.util.PropertyPermissi on "java.vm.name", "read";
permission java.util.PropertyPermissi on "platform.notASCII.11compa tible", "read";
};
grant {
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
grant {
permission java.net.SocketPermission "*:8080", "accept, connect, listen, resolve";
};
grant {
permission java.net.SocketPermission "*:8189", "accept, connect, listen, resolve";
};
grant {
permission java.lang.RuntimePermissio n "modifyThreadGroup";
};
grant codeBase "file:${java.home}/lib/ext
permission java.security.AllPermissio
};
grant {
permission java.lang.RuntimePermissio
permission java.net.SocketPermission "localhost:1024-", "listen";
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
permission java.util.PropertyPermissi
};
grant {
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
grant {
permission java.net.SocketPermission "*:8080", "accept, connect, listen, resolve";
};
grant {
permission java.net.SocketPermission "*:8189", "accept, connect, listen, resolve";
};
grant {
permission java.lang.RuntimePermissio
};
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
first make a jar:
jar cvf myApplet.jar *.class
then create a key for your program:
keytool -genkey -keyalg rsa -alias appletkey
fill out the requested info
Then export the key to a certificate
keytool -export -alias tstkey -file appletkey.crt
now sign your jar
jarsigner myApplet.jar appletkey
now in your html file you need:
<APPLET
code = "MainClass.class"
archive = "myApplet.jar"
width = "200"
height = "200"
>
</APPLET>