Java 升级到JRE 1.7.0_13后,小程序类名不正确

Java 升级到JRE 1.7.0_13后,小程序类名不正确,java,oracle,firefox,xul,Java,Oracle,Firefox,Xul,我有一个Firefox扩展,它加载了扩展本身包含的Java jar。我曾经使用window.javadom对象,以便 var loader = java.net.URLClassLoader.newInstance(urls); const myClassRef = java.lang.Class.forName("com.me.program", true, loader); var myJavaObject = myClassRef.newInstance(); //use LiveConn

我有一个Firefox扩展,它加载了扩展本身包含的Java jar。我曾经使用window.javadom对象,以便

var loader = java.net.URLClassLoader.newInstance(urls);
const myClassRef = java.lang.Class.forName("com.me.program", true, loader);
var myJavaObject = myClassRef.newInstance();
//use LiveConnect to directly call stuff on my object now.
在我扩展的JS代码中,URL是一个数组,其中包含jar文件的
文件://
uri

当Firefox删除window.java时,我开始在标签中嵌入一个小程序,以获得对java的引用:

<html:embed id ="appletID" type="application/x-java-applet" 
    code="java.applet.Applet"  pluginspage="http://java.com/download/"  MAYSCRIPT="true" width="0" height="0" />

....

var ref = document.getElementById("appletID");
window.java = ref.Packages.java;

....
var ref=document.getElementById(“appletID”);
window.java=ref.Packages.java;
这在更新到7u13后不再起作用,可能是因为不再支持嵌入标记中的code属性。我该怎么做才能解决这个问题


我曾尝试直接使用指向我的applet的
archive=
属性,但问题是因为我在Firefox扩展中,所有内容都变成了JRE仍然无法处理的
chrome://
URI,而且
file://
URI似乎不受支持(我收到了一条拒绝权限的通用消息).

在第74条和第75条评论中对此进行了询问和回答

简而言之,最新的Java插件不允许
code=“Java.applet.applet”
。而且似乎没有办法让插件访问扩展名中的jar文件。解决方法是将jar文件放在可公开访问的HTTP站点上;jar文件只需要包含一些小程序,比如
公共类applet扩展java.applet.applet{}
。以下是从Firefox bugzilla注释复制的覆盖HTML:

<html:div name="appletDiv">
    <html:embed id ="appletID" type="application/x-java-applet" 
        archive="https://mysite.com/applet.jar" code="Applet" 
        pluginspage="http://java.com/download/"  
        MAYSCRIPT="true" width="0" height="0" />     
</html:div>


可能相关。按照我的建议去做。我的jar不在lib/ext中。我不能把jar放在公共的地方(在哪里,就在~?),因为它必须打包在我的Firefox扩展的xpi中。安装后,它应该在用户主目录下的Firefox配置文件目录中的任何位置都可以访问。您的小程序是使用
embed
部署的。我应该改用什么?我记得以前试过applet和object,但都不起作用——它是一个XUL文件,覆盖在Firefox browser.XUL主框架上,不是真正的HTML文档。哦,我试过deployJava.js,它不起作用,给我“TypeError:document.write不是函数”。