(直接Javaクラスのリソースのメジャーバージョンとマイナーバージョンに話すこの答えは、以下を参照してください。List of Java class file format major version numbers?)を
おそらく、クラスのメジャーバージョンをご使用の環境でサポートされているよりも高く、 。
例外が発生している理由を正確に知るために、メジャーバージョンが「StaticLoggerBinder」であることを知るには、実際のクラスバイトを調べる必要があります。
SLF4J - シンプル-1.7.5.jar
これらのマニフェストを:JARファイルの
ORG/SLF4J/IMPL/StaticLoggerBinder.class
:それは、このエントリのバイトですプロパティは、JARがパッケージングされたときに使用されたビルド・ステップからの良好な情報を提供することがありますが、例外が何を見ているのかは異なります。例外は、未処理のクラスバイトに格納されているメジャーおよびマイナーバージョンの値を調べています。
16進エディタでクラスファイルの最初の数バイトを確認します。私たちは、最初の8つのバイトをしなければならないことを見
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html
ClassFile {
u4 magic;
u2 minor_version;
u2 major_version;
u2 constant_pool_count;
cp_info constant_pool[constant_pool_count-1];
:Oracleのクラス形式のドキュメントを使用して
00000000: cafe babe 0000 0032 0071 0a00 0f00 4809 .......2.q....H.
00000010: 001f 0049 0900 4a00 4b0a 004c 004d 0800 ...I..J.K..L.M..
:HEXLモードでは、Emacsは)、このようなものが表示されます"magic"の値0xcafebabe、次の4バイトはマイナーバージョン(通常は0x00)で、次の4バイトがメジャーバージョンです。 J2SE 9を通じて、定義されている有効なメジャーバージョンとマイナーバージョンの値は次のとおりです。
JDK_11(45, 3, "JDK 1.1"), // "0x2D"
JDK_12(46, 0, "JDK 1.2"), // "0x2E"
JDK_13(47, 0, "JDK 1.3"), // "0x2F"
JDK_14(48, 0, "JDK 1.4"), // "0x30"
JDK_50(49, 0, "J2SE 5.0"),// "0x31"
JDK_60(50, 0, "J2SE 6.0"),// "0x32"
JDK_7 (51, 0, "J2SE 7"), // "0x33"
JDK_8 (52, 0, "J2SE 8"), // "0x34"
JDK_9 (53, 0, "J2SE 9"); // "0x35"
サンプルバイトは主要な0x32のバージョン、またはJ2SE 6.0を示しました。
そのテーブルは、このユーティリティの列挙から取得され:
public enum JDKVersion {
JDK_11(45, 3, "JDK 1.1"), // "0x2D"
JDK_12(46, 0, "JDK 1.2"), // "0x2E"
JDK_13(47, 0, "JDK 1.3"), // "0x2F"
JDK_14(48, 0, "JDK 1.4"), // "0x30"
JDK_50(49, 0, "J2SE 5.0"),// "0x31"
JDK_60(50, 0, "J2SE 6.0"),// "0x32"
JDK_7 (51, 0, "J2SE 7"), // "0x33"
JDK_8 (52, 0, "J2SE 8"), // "0x34"
JDK_9 (53, 0, "J2SE 9"); // "0x35"
private JDKVersion(int majorVersion, int minorVersion, String textValue) {
this.majorVersion = majorVersion;
this.minorVersion = minorVersion;
this.textValue = textValue;
}
private final int majorVersion;
private final int minorVersion;
private final String textValue;
// getters omitted ...
}
「MAJORVERSION」と検討されているクラスのリソースの生のバイト値から得られる「MINORVERSION」と。一緒に
それを使用するようにサーバーを構成申し訳ありませんが、私の悪いですが、私のwarファイルには 'slf4j-simple-1.7.5.jar'も含まれています。私はそれに応じて私の質問を更新しました – Dreamer