2012-09-17 18 views
11

HTML Javaアプレットに埋め込むためのURLデータ機能を探そうとしています。URLデータでJavaアプレットを埋め込む

インスタンス化するHTMLタグのJavaアプレット1のドキュメントは、このオプションを除外しませんが、これはできません。テキスト「名前」とIlegalArgumentExceptionのこの変化の結果

<object type="application/x-java-applet" width="100" height="100"> 
    <param name="archive" value="data:application/java-archive;base64,BASE64_OF_JAR"/> 
    <param name="code" value="test.class"/> 
    <h1>not working</h1> 
</object> 

私は(オブジェクトやアプレット)を使用して、HTMLタグ値の異なるバリエーションを持っていると私は私の目標に近づいたと思いますが、このでした。私はこれをブラウザ上のエラーアイコンをクリックして確認します。 Javaコンソール上の全スタックトレースは次のとおりです。

java.net.MalformedURLException: unknown protocol: data 
     at java.net.URL.<init>(Unknown Source) 
     at java.net.URL.<init>(Unknown Source) 
     at sun.plugin.util.ProgressMonitorAdapter.setProgressFilter(Unknown Source) 
     at sun.plugin2.applet.Plugin2Manager.setupProgress(Unknown Source) 
     at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
     at java.lang.Thread.run(Unknown Source) 

誰もがこれを行う方法についてのアイデアを持っているか、それが不可能な場合でしょうか?

PS:それはHTMLの標準規格によって許容される場合でも、Oracleのhere

+0

先日慎重に投稿を読んでいなかったことを認めなければなりません。最後のリンクを逃しました。興味深いことに、JNLPはbase64でエンコードされている可能性があります。 –

+0

'data:application/java-archive'を' data:application/x-java-archive'と入れ替えるとどうなりますか? –

+0

同じ例外です。 プラグインハンドラがDATA URLを認識していないようですが、プラグインのソースコードを見ていただければ幸いです:) 完全例外:http://pastebin.com/ddsDSTQg – user823959

答えて

5

OBJECT要素のHTML4 specificationは、URL DATAに埋め込まれたインラインデータと、Oracleのアプレットインスタンス化documentationでこれを可能にします。実行されたテストでは、Javaブラウザプラグイン(Oracle)が表示され、利用可能なソースコードはJava SE 6から、実装でサポートされていないことが示されています。

この場合、オブジェクト/アプレットHTML要素のリソース参照のリソース処理がブラウザプラグインによって実行されるため、ブラウザがサポートしていても問題はありません。

別の方法として、URL DATAを使用してシリアル化されたアプレットのデシリアライズを、OBJECT属性をAPPLET elementとすることが考えられます。 HTML4仕様で述べたように、APPLETおよびOBJECT属性に対するアクティブなサポートはなく、JREはURL DATAからのオブジェクトの逆シリアル化もサポートしていないようです。

JREは、CODE、OBJECTおよびARCHIVEのHTML属性でbase64の逆シリアル化をサポートしていません。

JRE1.4.1のURL DATAサポートに関するBUGもありますが、これは実現していないBug ID: 4756961です。 64ビットWindowsマシンでJRE7と私のテストの

結果は次のとおりです。

  • ARCHIVEにURLデータを通じてJARを渡すには、(Applet2Manager.loadJarFilesではIllegalArgumentExceptionで結果を属性)。
  • クラスDATAをCODE属性に渡すと、Applet2ClassLoader.findClass()でClassNotFoundExceptionが発生します。
  • URL DATAを介してOBJECT属性にシリアル化されたアプレットを渡すと、Plugin2ClassLoader.getResourceAsResource()にFileNotFoundExceptionが発生します。
+0

優れた答えは、よくリンクされています。私は複数回upvoteすることができれば願っています。 – bonsaiviking

2

によってHTMLでJNLPを埋め込む方法の例があります、のJREは、通常、base64でエンコードされたデータを理解していません。

関連する問題