プロが教える店舗&オフィスのセキュリティ対策術

以下のエラーが出てJavaプログラムが実行できません
signer information does not match signer information of other classes in the same package

ネットで調べたところ、Jarファイルを無署名にせよとか、Jarの順序を変えれば治ったとか
書いてありますが、具体的な原因について言及しているサイトは見当たりませんでした。

このエラーは具体的にどのような場合に発生するのでしょうか?

A 回答 (1件)

署名付Jarを利用している中で署名の合わないクラスが同一パッケージに混じってるぞ、ということのようです。

だいたいライブラリというのはパッケージ単位でまとめてあるわけで署名付きJaraならば、あるパッケージに属するクラスはすべて同じ署名なわけです。そこに署名の異なるクラスが混じってるとこういうエラーになります。

原因としてはいろいろ考えられますが、まぁたいていはライブラリの競合でしょう。例えばバージョンの関係で適合しないライブラリが混じってるとか、同じライブラリの中で古いバージョンのJarが混じっているとか、そういったことが原因であることが多いと思います。

これ以上は、どういうプログラムでどういうライブラリ構成かわからないのでなんともいいようがありません。そのエラーの前に、SecurityException: class ○○とか出力されてませんか? それが含まれているライブラリのバージョンなどから調べていくと良いように思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!