web-dev-qa-db-ja.com

Java HTMLへの埋め込み

この質問は100万回も寄せられたと思いますが、Googleで何回検索しても、うまく機能しません。基本的には、複数のパッケージを含むプロジェクトをWebページに埋め込むことを目指しています。私はいくつかのボールを画面上で跳ねさせるテストプログラムを作成し、それを実行することができました。私はメインクラスを1つのパッケージに入れ、ボールクラスを別のパッケージに入れてテストしましたが、問題なく動作しているようです。しかし、私が実際にWebページで必要とするプログラム(FinalProjectと呼ばれる)はそれを拒否します。

私がそれをするために得ることができる最良のことは、エラーを出さずに真っ白な画面を私に与えることです。何も起こらないはずの場所をクリックしてみると、アプレットはあるのに白く表示されて見えないからだと思います。私はappletタグを使用しましたが、これは私の理解からは廃止されましたが、教師が見ることができるように、このプロジェクトをWebページに提出する必要があります。他の人のプロジェクト(appletタグを使用)が機能することをすでにテストしているので、今はこれに固執し、その後すべてのブラウザーで機能するかどうかを心配していました。それが問題になることは十分考えられますが。多分それは彼のブラウザで動作するでしょうが、ここでは私のものではありません。私はGoogle Chrome、Mozilla Firefox、およびInternet Explorerで自分のプログラムを実行しようとしましたが、うまくいきませんでした。

HTMLコードは次のとおりです。

<html>
<head>  

</head>  
<body>  
    <applet code = "main.FinalProject.class" width = "700px" height = "500px"></applet>  
</body>  
</html>

これが記述されているHTMLファイルは[Eclipse Workspace]/FinalProject/bin/test.htmにあります。 HTMLで参照されているFinalProject.classファイルは[Eclipse Workspace]/FinalProject/bin/ main/FinalProject.classにあります。 FinalProject.classファイルはメインクラスとして機能するので、これが実行する必要があるファイルだと確信しています。これは、init()、actionPerformed()、Paint()メソッドなど、優れた機能を備えたものです。

現在、これを自分のコンピューターでオフラインで実行しようとしているので、私が考えるネットURLはないはずです。私はEclipseを使用してJavaコードを記述しましたが、違いがある場合は不明です。残念ながら、Javaコードは大きすぎて、ここでは再現できません。あなたが私が見て、その小さなセクションを投稿することができる問題であるとあなたが考える特定の何かがあります。

何人かの私の友人は彼らをうまく動かせましたが、彼らは彼らのすべての.pngファイルを削除しなければならなかったと言いました(私のプロジェクトでは厄介ですが実行可能です)。彼らはまた、すべてのマウス移動コードを削除する必要があると述べた。私のプログラムはそれに依存しています。それが機能するためには、それが必要です。 MouseListenerとMouseMoveListenerのすべてのコードをオンラインで使用する方法がなければならないことを知っています。ただし、少し異なるかもしれません。これに何か関係があるのか​​どうかはわかりませんが、安全のためだけに指摘しておきます。

ここでどんな助けもいただければ幸いです。

10
Doug

今日のブラウザ(アプレット、埋め込み、オブジェクト)にJavaアプレットをデプロイする方法は?

これに基づいて、あなたが望むのは:

<object 
  classid="clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
  style="height: 500px; width: 700px;">
  <param name="code" value="FinalProject.class">
    <comment>
      <embed code="FinalProject.class"
        type="application/x-Java-applet"
        height="500" width="700">
        <noembed>
          This browser appears to lack support for Java Applets.
        </noembed>
      </embed>
    </comment>
  </object>

これで、コードにmain.FinalProject.classというファイル名が含まれます。 FinalProject.classの可能性が高いようです。しかし、あなたは正しいかもしれません。いずれの場合も、このhtmlファイルはmain.FinalProject.classまたはFinalProject.classと同じフォルダーにある必要があり、必要なクラスもすべて含まれる場合があります。

また、ブラウザが実際にアプレットを実行できることを確認する必要があるかもしれません。参照:WebブラウザでJavaを有効にするにはどうすればよいですか?


更新

Andrew Thompsonからのフィードバックに基づいて、推奨されるソリューションは、次のようにOracleのJavaScriptを使用することです。

<script src="http://www.Java.com/js/deployJava.js"></script>
<script>
    var attributes = {
        code:'FinalProject.class',
    width:700, height:500} ;
    var parameters = {}; // does the Applet take parameters?
    var version = '1.6' ; // does the Applet require a minimum version of Java
    deployJava.runApplet(attributes, parameters, version);
</script>

これには任意のJavaScriptをロードする機能が必要ですが、そのdeployJava.jsをキャプチャしてローカルにすることもできます。一見の価値があるかもしれません。

7
artlung