Use applet in html?
Asked Answered
N

3

7

I would like to use this applet this applet in a html document. In the example on this site they use :

<applet code="de.wim.outldd.examples.DragDropTest_Applet"
    width="150" height="150" alt="Applet1" archive="soutldd.jar">
</applet>

It does not work when I try it. My HTML document is in the middle of the extracted directory. How can I use the applet in html, somebody please try this.

THe error in the console

java.lang.RuntimeException: java.lang.ExceptionInInitializerError
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
    at de.wim.outldd.OutlookDD.init(OutlookDD.java:73)
    at de.wim.outldd.examples.DragDropTest_Applet$1.run(DragDropTest_Applet.java:29)
    at java.security.AccessController.doPrivileged(Native Method)
    at de.wim.outldd.examples.DragDropTest_Applet.<init>(DragDropTest_Applet.java:26)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission java.io.tmpdir 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.checkPropertyAccess(Unknown Source)
    at java.lang.System.getProperty(Unknown Source)
    at de.wim.outldd.OutlDDNativeLib.loadDllFromResource(OutlDDNativeLib.java:135)
    at de.wim.outldd.OutlDDNativeLib.loadDll(OutlDDNativeLib.java:104)
    at de.wim.outldd.OutlDDNativeLib.<clinit>(OutlDDNativeLib.java:62)
    ... 19 more
Exception: java.lang.RuntimeException: java.lang.ExceptionInInitializerError
Nostoc answered 28/8, 2012 at 22:17 Comment(1)
What is an URL to the broken applet? Do you get prompted to trust the digitally signed code when it launches? Is the applet for Windows only?Tetrachord
J
4

Your applet is trying to read the temp directory value from the java.io.tmpdir system property which is previleged. Applets run in a sandbox environment with restricted permissions beacause of security reasons. To fix it, override the default security policy to allow your applet to read the property by setting the property permission - java.util.PropertyPermission, on the property. To override default permissions define the policy in your user home's .java.policy file. It is recommended that you edit your user specific policy file and not the global policy file under your JRE security directory. Refer the template below:

grant codeBase "<code base>" { 
   permission <type> "<target>", "<actions>"; 
   permission <type> "<target>", "<actions>"; 
   ... 
}; 

For eg. 
grant codeBase "http://geosim.cs.vt.edu/geosim/-" { 
  permission java.util.PropertyPermission "java.io.tmpdir", "read";
  ... 
}; 

Edited:


I noticed that you already have the applet link specified in your post at the top. So, I am giving a step by step guide to get you started.

Here you go -

  1. Copy $JRE_HOME/lib/security/java.policy file to your user home (on windows it is c:\users\< user name>) as .java.policy file. Please note the preceding "." in the file name.

  2. Add the following lines to the end of .java.policy file:

    grant codeBase "http://www.wilutions.com/outldd/-" {
    permission java.security.AllPermission; };

  3. Run the applet in an appletviewer as follows and see if it works. appletviewer http://www.wilutions.com/outldd/example.html

  4. Please note that I am specifying all permissions to the applet for sake the of geting you started but it is potentially insecure to grant all permmissions. You should grant only the required permissions. So, I leave it to you to figure it out.
Jackjackadandy answered 1/9, 2012 at 14:3 Comment(11)
Please make sure you specify applet codebase value as per your environment else the policy will not take effect.Jackjackadandy
Where is this java.policy file??Nostoc
Your global policy file java.policy resides under your JRE-home/lib/security/ directory. Copy the file under your user home as .java.policy and add your policies.Jackjackadandy
Please note that you may need to grant additional permissions as appropriate if your applet attempts any other previleged operations.Jackjackadandy
Your user home directory. The user home path is set against the "user.home" system property.Jackjackadandy
let us continue this discussion in chatNostoc
Sorry I was asleep, I just noticed that you already have the link to the applet in your post at the top. Let me try running it.Jackjackadandy
Refer my original post above. I have edited my answer above to add step by step instructions.Jackjackadandy
It worked fine on that website allways, but I want it to work on my server.Nostoc
Yes I have done that right but it just doesnt work, have you tried it yourself to use this applet in html?Nostoc
Yes, it works right for me. Plz check if you are doing anything wrong.Jackjackadandy
R
1

Have you followed the guide found here and are you sure the specified paths are correct in relation to your directory/html page?

Also what about applet JAR file soutldd.jar path is this correct?

Russian answered 28/8, 2012 at 22:37 Comment(1)
the specified path is actually wrong in the source code, but I tried also the right one and it also doesnt work.Nostoc
L
0

go to Java preferences->advance and turn Java console on so that you can see what is happening on loading your applet in HTML.

in windows

java preferences: control panel -> java

Luminous answered 28/8, 2012 at 22:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.