5

アプリケーションのどの部分が特定のJavaバージョンでのみ実装されているJavaAPIメソッドを呼び出すかを、ソースから(またはコンパイルされたクラスからでも)検出する簡単な方法(ツールなど)はありますか?(たとえば、私のアプリのどの部分がJava6固有であるか)

必ずしもすべてのClassMismatchErrorsを飛び越えて、試行錯誤の方法を避けたいとは限りません。たとえば、Java6用に作成された場合にアプリケーションのどの部分が機能しないかを文書化したいだけで、バージョン5のJDKで実行したいとします。

このようなものはありますか?Googleは今回は役に立ちませんでしたし、ここで解決策も見つかりませんでした(実際にはまれなケースです:)

4

2 に答える 2

3

Animal Snifferは、特にそのMavenプラグインに役立つ可能性があります。

于 2010-06-11T17:59:08.893 に答える
0

私があなたを正しく理解していれば、あなたが説明していることは私にはあまり良い考えのようには思えません。

JDK 6(-target 1.5を指定)でライブラリを構築したいようですが、JDK 5で実行し、特定のクラスまたはメソッドをあちこちに配置するだけでは機能しません(Java6のみのAPIが必要だったため) 。私はこれをしません。動作するはずのメソッドは、Java 6で新しいクラスへの参照を含むクラスがロードされるようにトリガーする可能性があり、スローErrorされます。

サポートされている最小バージョンを選択して、それを使用する方がはるかに優れています。

于 2010-06-11T18:27:35.443 に答える