我有一个 Firefox 扩展,它加载了扩展本身包含的 Java jar。我曾经使用 window.java DOM 对象,所以我可以这样做
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.
file:///
在我的扩展程序的 JS 代码中,其中 urls 是一个包含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;
这在更新到 7u13 后不再起作用,大概是由于不再支持 embed 标记中的 code 属性。我应该怎么做才能解决这个问题?
我已经尝试直接使用archive=
指向我的小程序的属性,但问题是因为我在 Firefox 扩展中,所以一切都变成chrome://
了 JRE 仍然无法处理的file://
uris,而且似乎不支持 uris(我得到通用权限被拒绝消息)。