2

拡張機能自体に含まれている Java jar をロードする Firefox 拡張機能があります。以前は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 が wi​​ndow.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 属性がサポートされなくなったためです。これを修正するにはどうすればよいですか?

アプレットを指す属性を直接使用しようとしましたが、問題は、Firefox 拡張機能を使用しているため、すべてがJRE がまだ処理できない uris にarchive=変わり、 urisがサポートされていないように見えることです (一般的な許可拒否メッセージ)。chrome://file://

4

1 に答える 1

0

これは、 https://bugzilla.mozilla.org/show_bug.cgi?id=748343のコメント 74 と 75 で尋ねられ、回答されています。

つまり、最新の Java プラグインはcode="java.applet.Applet". また、拡張機能の jar ファイルにアクセスするプラグインを取得する方法はないようです。回避策は、一般にアクセス可能な HTTP サイトに jar ファイルを配置することです。jar ファイルには、public class Applet extends 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>
于 2013-03-14T14:42:29.610 に答える