方法一:查看清單文件。
解壓jar包,查看jar包中的META-INF\MANIFEST.MF文件,Build-Jdk屬性就是JDK的版本。比如:
Build-Jdk: 1.5.0_22
注:如果jar包中,沒有這個字段,就必須通過方法二來查看。
方法二:通過反編譯.class文件來查看。
解壓jar包,得到.class文件。用JDK自帶的javap反編譯.class文件,用如下命令:
javap -v JavaSource.class
查看得到的信息中,major version屬性的內容,如下:
major version: 52 //主版本號
minor version: 0 //小版本號
說明這個.class文件是由JDK1.8編譯得到的。
- J2SE 8.0 = 52(0x33 hex)
- J2SE 7.0 = 51(0x32 hex)
- J2SE 6.0 = 50 (0x32 hex)
- J2SE 5.0 = 49 (0x31 hex)
- JDK 1.4 = 48 (0x30 hex)
- JDK 1.3 = 47 (0x2F hex)
- JDK 1.2 = 46 (0x2E hex)
- JDK 1.1 = 45 (0x2D hex)
注:一個.jar包中可能有多個.class文件,每個.class的JDK版本可能會不一樣(編譯器多個項目設置不同)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
如何設置eclipse導出.jar的JDK版本
我們可以在同一台機器上安裝多個JDK,然后在eclipse中選擇不同版本的JDK來導出.jar包。
Project右鍵->Properties->Java Compiler中的JDK Compliance選項下,有Use Compliance from execution environment 選擇JDK版本。
注:如果一個.jar依賴於多個Project,必須將每個Project的JDK版本都選擇一致。