大規模な既存のプロジェクト(Vizster)からJavaアプレットを作成しています。MacOSXのJDK1.5でNetBeans6.7.1を使用しています。
単一の出力.jarファイルからアプレットを実行しようとしていますが、これを実行すると、Firefoxの画面の下部に「アプレットがロードされました」と表示され、Javaコンソールには何も表示されませんが、アプレットのウィンドウ。これ以前のFirefoxでは、「appletNotLoaded:ClassDefNotFoundError」などのエラーやセキュリティエラーなど、さまざまなエラーが発生しましたが、Javaコンソールに出力が表示されることはありません。アプレットのhtmlファイルは次のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<applet codebase ="." code="zuve.ZuveApplet.class"
archive="ZuveApplet.jar"
height="1000" width="1000"/>
</body>
</html>
ここで、zuve.ZuveApplet.classは私のメインメソッドが配置されている場所であり、「ZuveApplet.jar」は出力jarファイルの名前です。メインメソッドクラスであるZuveApplet.javaは次のとおりです。
package zuve;
import vizster.Vizster;
import vizster.VizsterLib;
import java.applet.Applet;
public class ZuveApplet extends Applet {
public static final String DEFAULT_START_UID = "186297";
@Override
public void init() {
new Vizster();
}
public static void main(String[] argv) {
VizsterLib.setLookAndFeel();
//String startUID = argv.length > 0 ? argv[0] : DEFAULT_START_UID;
String startUID = DEFAULT_START_UID;
String file = argv.length > 0 ? argv[0] : null;
new Vizster(startUID, file);
}
}
アプレットはスタンドアロン(htmlに埋め込まれていない)として完全に動作しますが、埋め込む必要があります。「Vizster」オブジェクトはJFrameの拡張であるため、そのインスタンスを作成してアプレットに追加できるはずです。これよりもはるかに複雑でしょうか?
残念ながら、私はJavaとアプレット全般に不慣れです。ソースツリー構造が問題になっているというフォーラムの投稿をたくさん見たので、次のようにします。
1)複数のパッケージを使用しているのは問題ですか?それらはすべて私のプロジェクトのsrcディレクトリにあります。
2)Javaホームディレクトリに配置する必要があるものはありますか?多くの人がクラスパスの問題を抱えていることは知っていますが、私は最新のIDEを使用しています。
3)プロジェクトをNetBeans Java Webアプリケーションプロジェクトにインポートする場合、アプレットを.jarとしてプロジェクトに追加する必要がありますか、それともプロジェクト全体を追加する必要がありますか?
4)元々、このアプレットを作成したとき、依存関係としていくつかのソースファイルと多数の.jarライブラリがありましたが、出力.jarを調べたところ、コンパイルされたソースファイルだけが表示されました。ライブラリからのファイルの痕跡はありませんでした。これはどうあるべきですか?出力.jarを含まれているフォルダーから移動すると、スタンドアロンで実行できなくなることに気付きました。.jarは自己完結型であるはずだと思いましたが、これは真実ではありませんか?実行可能jarの作成について知っておくべきことはありますか?
5)補足として、htmlのアプレットタグに示されているアプレットのサイズは、アプレット自体のサイズと正確に一致する必要がありますか?
膨大な投稿と非常に漠然とした問題で申し訳ありませんが、私はアプレットやJavaについて誰も知らないチームと協力しています(私たちの本当に素晴らしい人です、私は知っています)。どんな種類の助けや一般的な提案も本当に役に立ちます。
ありがとうございました!