Tomcat 啟動時報錯:
Caused by: java.lang.UnsupportedClassVersionError:
org/apache/activemq/spring/ActiveMQConnectionFactory :
Unsupported major.minor version 51.0
同事電腦正常,當前環境失敗。
| Major Version | JDK 版本 |
|---|---|
| 45 | JDK 1.1 |
| 46 | JDK 1.2 |
| 47 | JDK 1.3 |
| 48 | JDK 1.4 |
| 49 | JDK 1.5 |
| 50 | JDK 1.6 |
| 51 | JDK 1.7 |
| 52 | JDK 1.8 |
| 53 | JDK 9 |
| 54 | JDK 10 |
| 55 | JDK 11 |
| 56 | JDK 12 |
| 57 | JDK 13 |
| 58 | JDK 14 |
| 59 | JDK 15 |
| 60 | JDK 16 |
| 61 | JDK 17 |
| 62 | JDK 18 |
| 63 | JDK 19 |
| 64 | JDK 20 |
| 65 | JDK 21 |
結論:activemq-all-5.11.1.jar (或相關 Spring 整合包) 由 **JDK 1.7 編譯**,而運行環境為 **JDK 1.6**,類加載器拒絕加載高版本編譯的 class 文件。
5.10.x 或更早)。maven-compiler-plugin 配置 source/target 1.7),主項目保持 JDK 1.6 (極不推薦,構建極其複雜)。
# 1. 確認當前運行 JDK
java -version
# 輸出應包含 "1.7.0_xx" 或 "1.8.0_xx" 或 "11.x.x" 等
# 2. 確認 ActiveMQ jar 編譯版本
javap -verbose activemq-all-5.11.1.jar | grep "major version"
# 輸出 major version: 51 確認需 JDK 1.7+
# 3. 檢查項目依賴樹
mvn dependency:tree | grep activemq
# 確認傳遞依賴無版本衝突
# 父 POM / BOM 統一版本
17
${java.version}
${java.version}
5.18.3
org.apache.activemq
activemq-bom
${activemq.version}
pom
import
UnsupportedClassVersionError 51.0 是 **JDK 版本不匹配的鐵證**。**唯一正確的工程決策是升級運行時 JDK 至 1.7 以上 (強烈建議直接跳至 LTS 版本 11/17/21)**。任何嘗試在舊 JDK 上運行新編譯庫的舉動,都是在為技術債務買單。