查詢Java 程式的class 檔編譯的JVM 版本 - Tony Blog
文章推薦指數: 80 %
Java 專案編譯的class 檔使用的版本,必須等於或小於執行環境的JVM 版本, ... more recent version of the Java Runtime (class file version 60.0), ...
查詢Java程式的class檔編譯的JVM版本
Java
Kotlin
7月01,2021
OpenJDK
最近開始將執行環境的JVM8升到11,舊專案在編譯的時候如果沒有指定目標版本,就可能在執行時出現UnsupportedClassVersionError的錯誤。
Runtime版本錯誤
Java專案編譯的class檔使用的版本,必須等於或小於執行環境的JVM版本,否則會出現錯誤:
Error:LinkageErroroccurredwhileloadingmainclassApp
java.lang.UnsupportedClassVersionError:ApphasbeencompiledbyamorerecentversionoftheJavaRuntime(classfileversion60.0),thisversionoftheJavaRuntimeonlyrecognizesclassfileversionsupto55.0
發生的原因是App編譯成60.0版(Java16),但執行環境的JVM為55.0版(Java11)
如何檢查編譯的class版本
$javap-verboseMyApp.class|grep"major"
majorversion:55
資料來源:https://fabianlee.org/2018/01/19/java-determining-the-java-version-used-to-compile-a-class-class-file-has-the-wrong-version/
Class版本對照表
JDKVersionBytecodeVersion
Java1.045.0Java1.145.3Java1.246.0Java1.347.0Java1.448.0Java549.0Java650.0Java751.0Java852.0Java953.0Java1054.0Java1155.0Java1256.0Java1357.0Java1458.0Java1559.0Java1660.0Java1761.0Java1862.0
資料來源:https://javaalmanac.io/bytecode/versions/
Gradle的設定
在build.gradle檔案中可以指定編譯的目標版本,如下:
sourceCompatibility=1.8
targetCompatibility=11
compileKotlin{
kotlinOptions.jvmTarget="11"
}
compileTestKotlin{
kotlinOptions.jvmTarget="11"
}
本文網址:http://blog.tonycube.com/2021/07/java-class-version.html
由TonyBlog撰寫,請勿全文複製,轉載時請註明出處及連結,謝謝😀
我要留言
留言小提醒:1.回覆時間通常在晚上,如果太忙可能要等幾天。
2.請先瀏覽一下其他人的留言,也許有人問過同樣的問題。
3.程式碼請先將它編碼後再貼上。
(線上編碼:http://bit.ly/1DL6yog)4.文字請加上標點符號及斷行,難以閱讀者恕難回覆。
5.感謝您的留言,您的問題也可能幫助到其他有相同問題的人。
較新的文章
較舊的文章
首頁
電子書📚
GooglePlayPubu
Kobo
GooglePlayPubu
Kobo
GooglePlayPubu
Kobo
GooglePlayPubuGitbookKobo
熱門文章🔥
Java8新功能筆記(3)-Stream
Java8新功能筆記(4)-Optional
C#使用BackgroundWorker背景執行
VisualStudioCode極速上手指南
Java要收費?!是時候使用OpenJDK了
查詢Java程式的class檔編譯的JVM版本
使用Composer管理PHP套件
MacbookPro過保自己換電池
系列文章📦
Kotlin實戰範例
動手學VPS架站:使用CentOS7+Nginx+PHP-FPM+MariaDB
Vue.js漸進式JavaScript框架入門
Laravel4學習筆記
文章分類🏷
Android
Laravel
PHP
Vuejs
Kotlin
Java
CentOS
Linux
WindowsPhone
C#
Flash
HTML
Objective-C
Cocos2D
Nginx
Xcode
ActionScript
iOS
web
Reading
SublimeText3
ssl
Chart
Eclipse
Swift
bash
Apache
JSON
git
shell
Ajax
Blogger
CSS
CocoaPods
Database
Gradle
Macbook
PC
Redmine
VSCode
VisualStudioCode
VisualStudio
Vuido
jQuery
python
ssh
ubuntu
電子書
延伸文章資訊
- 1檔案副檔名CLASS : Java Class File 是什麼? 如何開啟?
檔案副檔名CLASS是一種由Oracle開發的Java Class File。 支援的作業系統和可以開啟該檔案類型的相關軟體或應用程式. Windows, Oracle Java Runtime...
- 2Java類檔案- 維基百科,自由的百科全書
Java類別檔案是一個包含Java位元組碼的可由Java虛擬機器執行的檔案(副檔名為.class)。Java類別檔案是由Java編譯器編譯包含Java類別的用Java語言編寫的原始檔(.java...
- 3[Java] Class1 — Java運作原理&撰寫第一隻java程式
Java運作過程 · 原始碼(Source code / .java) eg: 以java語法了一個java class, 並存成.java檔。 · 編譯器(Compiler) 執行javac程...
- 4查詢Java 程式的class 檔編譯的JVM 版本 - Tony Blog
Java 專案編譯的class 檔使用的版本,必須等於或小於執行環境的JVM 版本, ... more recent version of the Java Runtime (class fil...
- 5【左京淳的JAVA學習筆記】第一章JAVA基礎 - iT 邦幫忙
一個java檔裡至少需有一個class(代表一個物件)。 · class名稱通常與檔名一致。 · public static void main(String[] args) {}這個方法稱為m...