0

私の前の問題に取り組んでいる間、

JavaJarクラスが見つからない例外

私は何か奇妙なことに気づきました。見つからないクラスはmainから参照されています。今、私が次のようなクラスのインスタンスを作成しようとすると

SysTrayトレイ=newSysTray();

アプリケーションを実行しようとすると、クラスが見つからないという例外が発生しますが、次のように作成すると

静的SysTrayトレイ=newSysTray();

ロードされても問題は報告されません。

なぜこれなのか誰か知っているのかしら?

外部依存関係がなく、アプリケーションがjarに含まれているため、これはクラスパスとは関係ありません。

4

2 に答える 2

3

実際のコードを見せていただけますか、それとも大きすぎる場合は、小さな例でエラーを再現してみてください。

これを説明できる唯一のことは、静的参照がメインクラスの外部にあり、定義されているクラスが最初にアクセスされるまで実際にはロードされないことです。

于 2009-06-07T06:57:56.540 に答える
0

実際に静的フィールドにアクセスしていますか? 覚えていませんが、jvmは静的初期化を遅延して自由に実行できると思います(ファーストクラス参照などで.

于 2009-06-07T11:25:44.253 に答える