1

Eclipse 以外でアプリケーションを実行する際に問題があります。IDE 内のアプリケーションで ClassCastException が発生しない場所で ClassCastException を発生させます。特に、キャストしようとしているインスタンスの名前をターミナルに出力し、IDE 内では「NestedEngineImpl」などの正しいタイプを提供しますが、IDE の外部では「EngineImpl」を提供しますが、EngineImpl を NestedEngineImpl にキャストすることはできません。 . NestedEngineImple は EngineImpl を拡張します。実行可能 jar は、Eclipse の Export Runnable JAR ファイルを使用して作成されています。jar が開き、例外が発生するまで実行されます。

どんなアドバイスでも大歓迎です。

4

3 に答える 3

1

jar のバージョンを確認します。これを試してください(「java/lang/Object.class」をクラスへの適切なパスに置き換えてください):

ClassLoader.getSystemClassLoader().getSystemResource("java/lang/Object.class")

jar への URL が表示されます。これを印刷して、クラスがどこから来ているかを確認できます)。

于 2010-11-03T23:23:23.433 に答える
0

返信ありがとうございます。Eclipse で設定された jar を実行するときに、VM 引数を指定しなかっただけです。

于 2010-11-05T00:44:17.463 に答える
0

おそらく、JAR のバージョンが間違っていて、それを正しいバージョンに置き換える必要がある場合にJar Hell似ていると私たちが呼んでいるものに苦しんでいるかもしれません。DLL Hellこれは、ライブラリが絶えず変更される大規模な開発環境でより頻繁に発生します。

于 2010-11-03T22:36:14.637 に答える