2

Mac OS X 10.5.6 で Java SE 1.6 を使用しています。私のアプレットのコードは次のとおりです。

import java.awt.Graphics;
import javax.swing.JApplet;

public class HelloWorld extends JApplet {

    public void paint( Graphics g ) {
            super.paint( g );
            g.drawString( "Hello World!", 25, 25 );
    }

}

これを.classファイルにコンパイルしました。私のHTMLファイルのコードは次のとおりです。

<html>

<head>
    <title>Hello World</title>
</head>

<body>
    <applet code="HelloWorld.class" height="300" width="300">
            Your browser is ignoring the applet tag.
    </applet>
</body>

</html>

アプレットをappletviewerで実行すると、正常に動作します。しかし、ブラウザで HTML ファイルを開くと、アプレット スペースに四角形が表示されますが、アプレットは読み込まれません。(「Your browser is ignoring the applet tag.」も表示されません。) ブラウザのステータス バーに 、 Applet HelloWorld notloadedLoading Java Applet Failed... という2 つのメッセージが表示されます。 .1、および Opera 9.6.3。それらのどれもアプレットをロードできませんでした。

/Developer/Examples/Java/Appletsにある Java デモ アプレットの 1 つの HTML を開こうとすると、3 つのブラウザすべてで問題なく読み込まれます。

この単純なアプレットをブラウザにロードしようとする際に、ここで欠けているものはありますか?

4

9 に答える 9

2

残念ながら、Apple は OS X 上の Java 6 用の 64 ビット VM のみをリリースすることを決定しました。これは、ブラウザーを 64 ビット アプリとしてリンクする必要があることを意味します。現在、それらのどれも(私が知る限り)そうではありません。したがって、「簡単な」解決策は、Java Preferences アプリケーションで設定できるアプレットに Java 5 を使用することです。

于 2009-02-06T09:18:47.420 に答える
2

アプレットタグで codebase プロパティを指定していないため、クラスが見つからないと思います。

Java コンソール出力ウィンドウを有効にしてみてください。これは、拡張オプション タブ (ツリーと多くのチェックボックスのあるもの) の下の "Java 設定" (スポットライトを使用) で行うことができます。そこには、さらに詳しい情報 (ClassNotFoundException など) が表示される場合があります。設定を「コンソールを有効/表示する」に設定します。その後、アプレットを起動すると表示されるはずです。

于 2009-02-06T04:41:42.020 に答える
1

Phil さん、dhiller によるコード ベースに関するコメントは、私に役立つ何かを引き起こしました。"HelloWorld.class" ファイルを HTML ファイルと同じフォルダーに配置し、アプレット タグを: < applet code="HelloWorld.class" codebase="." align="baseline" height="300" width="300" >に設定すると、ブラウザーで HTML ファイルを開くことができます。私はそうしました。はcodebase ="."、アプレット コードが HTML ファイルと同じフォルダにあることをブラウザに伝えます。ブラウザは明らかにクラス コードの場所を認識していないため、アプレットのロードは失敗します。

于 2010-05-14T21:53:34.027 に答える
0

ただのメモ。このスレッドは私を軌道に乗せるのに役立ちましたので、役立つメモを追加したいと思います. 2010 年 8 月 9 日。

Mac OS X 10.5.8 Leopard では、使用される Java のバージョンは、パス Mac HD/Applications/Utilities/Java Preferences のアプリによって制御されます。

以前は Java 設定と呼ばれていた可能性がありますか? デスクトップ アプリに使用される Java のバージョンは、ブラウザーで使用されるバージョンと同じである必要はありません。(コマンド ラインから) Portecle を起動するときに問題が発生しました。「.class ファイルのバージョン番号が正しくありません」と報告されていました。

2010 年 8 月現在、Mac OS X 10.5.8 のデフォルトの Java シーケンスは次のとおりです。

  • J2SE 5.0.......32 ビット
  • J2SE 5.0.......32 ビット
  • Java SE 6.....64 ビット
  • J2SE 5.0.......64 ビット
  • J2SE 1.4.2 ...32 ビット

どうやら私がロードしようとしていたJavaアプリにはJava SE 6 64ビットが必要だったようです.Java SE 6をそのリストの一番上にドラッグするとすぐに問題が修正され、Portecleはその後コマンドラインから、またはダブルクリックまたはportecle.jar. (万歳)

于 2010-08-09T18:11:55.997 に答える
0

ご回答ありがとうございます。それらのいくつかは、問題の原因を突き止めるために私を正しい方向に向けました.

Java 環境設定で Java コンソールをオンにしました。アプレットを再度実行すると、次の出力が表示されます。

Java Plug-in 1.5.0
Using JRE version 1.5.0_16 Java HotSpot(TM) Client VM
MRJ Plugin for Mac OS X v1.0.1
[Java Applet Security @ Fri Feb 06 23:47:20 CST 2009 の起動]
java.lang .UnsupportedClassVersionError: .class ファイル
の java.lang.ClassLoader.defineClass1(Native Method)
の java.lang.ClassLoader.defineClass(ClassLoader.java:675)
の java.security.SecureClassLoader.defineClass(SecureClassLoader.java: 124)
で sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:177)
で java.lang.ClassLoader.loadClass(ClassLoader.java:316)
で sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:119) で
java.lang.ClassLoader.loadClass(ClassLoader.java:251)
で sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:605)
で sun.applet.AppletPanel.createApplet(AppletPanel.java:723)
で sun.plugin. AppletViewer.createApplet(AppletViewer.java:1864)
で jep.AppletFramePanel.createApplet(AppletFramePanel.java:189)
で sun.applet.AppletPanel.runLoader(AppletPanel.java:652) で sun.applet.AppletPanel.run(AppletPanel.java
) :326)
jep.AppletFramePanel.run(AppletFramePanel.java:176)
で java.lang.Thread.run(Thread.java:613) で

Mac に Java SE 1.6 をインストールしましたが、1.6 プラグインがインストールされていないようです。また、作成時に.classファイルにバージョン番号がスタンプされているように見えます。そのアプレットをバージョン 1.6 でコンパイルしましたが、1.5 プラグインで実行しようとしたため、UnsupportedClassVersionErrorが発生しました。アプレットをバージョン 1.5 で再コンパイルし、3 つのブラウザすべてで再度実行してみました。魅力のように働きました。

1.6 プラグインが開発中かどうか知っている人はいますか?

于 2009-02-07T06:46:55.480 に答える
0

アプレットに自分自身を表示するコンテナなどを与えていません。HelloWorldアプレットの例を次に示します。

/*
  File.......: MyHello_JApplet.java
  Description: Basic JApplet example.  (Run by a browser.)
  Programmer.: Michael Thomas
  Date.......: Updated 09/09/01, Orig 09/09/01

*/
import javax.swing.JApplet;
import java.awt.Graphics;
import java.awt.Container;
import java.awt.Color;

public class MyHello_JApplet extends JApplet {

  public void init() {
    Container objContainer = super.getContentPane();
    objContainer.setBackground( Color.white );
  }
  public void paint(Graphics g) {
    g.drawString("Hello World from JApplet (Swing - JApplet).",10,25);
  }
}
于 2009-02-06T04:55:31.180 に答える
0

HTML ファイル内のクラス名を引用符で囲まないでください。引用符を付けるたびに、アプレットが機能しません。:)

于 2010-11-16T00:06:02.903 に答える
0

私は Web プログラミングの専門家ではありませんが、applet タグは標準ではないと思います。アプレット (またはほとんど何でも) を挿入するには、適切なクラス ID を持つ object タグを使用する必要があります。

于 2009-02-06T04:29:58.627 に答える