Java applet stopped working after update to JRE 7u21

后端 未结 5 1275
情书的邮戳
情书的邮戳 2020-12-03 14:40

My java applet stopped working once JRE was updated to 7u21.

Short summary:

  • The Exceptions I get are: netscape.javascript.JSException and
    java.l

相关标签:
5条回答
  • 2020-12-03 15:08

    Deploying applets is getting significantly harder as Oracle fixes security holes.

    You mentioned your applet is signed -- are all of the JARs signed? There are several new attributes you'll need in your manifest files to get this to work.

    Overview here: http://www.oracle.com/technetwork/java/javase/tech/java-code-signing-1915323.html

    and you'll need this one in particular to get the manifest sorted out: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html

    If you use some JARs that aren't signed, or that aren't all signed by you, you'll need the details here as well: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mixed_code.html

    0 讨论(0)
  • 2020-12-03 15:19

    It's not possible to set the attributes of an applet to work both on versions after 7.0.21 and below it.

    Trusted-Library: true
    

    attribute works for the ones below 7.0.21 which causes a security dialog to be displayed (and most probably your code to be blocked) after 7.0.21. If you only put

    Caller-Allowable-Codebase: *.yourdomain.com
    

    to your manifest file, it starts to work fine with the versions after 7.0.21 but this time it stops with the versions below 7.0.21. This is a huge mess.

    However they've fixed this ill behaviour with the latest version (7.0.51). So I suggest to use both attributes (Trusted-Library and Caller-Allowable-Codebase) which will work for Java 6 and 7.0.51. I don't think there is a solution for the ones between 7.0.21 and 7.0.45. (I do not support them, we ask our clients to upgrade to 7.0.51).

    https://blogs.oracle.com/java-platform-group/entry/7u45_caller_allowable_codebase_and

    0 讨论(0)
  • 2020-12-03 15:28

    The same happened with me (in java environment) which ruined my whole day, netscape's JSObject is present in both jre's plugin.jar and jfxrt.jar, you'd need to exclude one. if you need a js call, i think you'd need plugin.jar jre 6 do not contain latest jfxrt.jar (JavaFX related solution for applets in web)so it used to work in jre6

    also , do not use trusted library unless you want to sign individual jars separately. Hope this helps - Chaithanya

    0 讨论(0)
  • 2020-12-03 15:29

    I do not know DeploJava.js bu the problem ıs clearly a classpath problem.

    As a method, we define all third party libraries in archive tag. DeploJava.js may have similar properties.

    <APPLET   codebase="./"  code="AppletMainClass"   archive="printer_applet.jar, pdf-renderer.jar, library3.jar">
    
    0 讨论(0)
  • 2020-12-03 15:30

    Bailey S is right.Make sure that java can see that jar file.If you're using linux,set the path in /etc/environment path variable or in windows,just right click on my computer,go to properties,environment variables and set path there

    0 讨论(0)
提交回复
热议问题