步驟一:
修改Eclipse/Myeclipse JDK版本:
WindowàPreferenceàJavaàInstalled JREs
在相應的JDK版本前面打鉤
2. 如何查看jar包的編譯版本
隨便找到JAR包文件中的c某個class文件,看一下class文件的前面幾個16進制是多少,就可以知道編譯的JDK版本了 具體的JDK版本號對應的版本名稱可以查看網頁鏈接這篇文章
3. java編譯,提示JDK版本錯誤!
錯誤原因:
類似錯誤均屬於Java版本問題,即JDK版本過低,只要選擇相對應的JDK版本編譯即可。
48,49,50是Java編譯器內部的版本號:
Unsupported major.minor version 51.0 對應於 JDK1.7(JRE1.7)
Unsupported major.minor version 50.0 對應於 JDK1.6(JRE1.6)
Unsupported major.minor version 49.0 對應於 JDK1.5(JRE1.5)
Unsupported major.minor version 48.0 對應於 JDK1.4(JRE1.4)
解決辦法:
僅僅按照網上說的設置JAVA_HOME 等方案是不能解決問題的。
下面是我的解決辦法:
(1)在eclipse中新增dk1.7的版本
(3)將jdk1.6相關條目選中,然後點右側按鈕 Remove ,將jdk1.6刪除。
(4)點右側 Add Library 彈出對話框,選中jdk1.7的條目,我這里顯示的是 JRE System Library 然後點擊next。
(5) 在第四步彈出的對話框上,激活 Alternate JRE 選項,並在下拉列表中,選擇 jdk1.7 然後點Finish。
(6)在第五步完成後,從Libraries 選項卡切換到 Order and Export 選項卡,並在jar列表中選中 JRE System Library[jdk1.7] 然後 點 ok完成設置。
(7)修改項目啟動jdk為1.7;項目右鍵 -> Run As -> Run Configuration;選擇Jre選項卡,alternate jre選擇jre7,點擊run即可運行。
總結
其實根本問題還是jre的配置問題。major.minor version,它相當於一個軟體的主次版本號,只是在這里是標識的一個javaClass的主版本號和次版本號。
4. Intellij IDEA 怎麼向Eclipse一樣在編譯jar文件的時候修改jdk版本
可以試試
在jar包中,用winrar解壓一個類文件,然後在命令行下面輸入
javap -verbose classname
會輸出一些信息,大致如下:
Compiled from "HtmlCrawer.java"
public class org.eagleeye.html.HtmlCrawer extends java.lang.Object
SourceFile: "HtmlCrawer.java"
minor version: 0
major version: 50
Constant pool:
const #1 = class #2; // org/eagleeye/html/HtmlCrawer
const #2 = Asciz org/eagleeye/html/HtmlCrawer;
const #3 = class #4; // java/lang/Object
const #4 = Asciz java/lang/Object;
const #5 = Asciz client;
5. 如何看一個jar 包的jdk版本號
用7-zip打開.jar包,查看META-INFMANIFEST.MF中的內容,Build-Jdk屬性就是JDK的版本,比如:
Build-Jdk: 1.5.0_221
說明其JDK版本為1.5.0.22。
注意:一個.jar文件中,如果沒有這個欄位,就必須通過下面一種方法來查看
通過反編譯.class文件來查看
解壓.jar包,能得到.class文件。用JDK自帶的javap反編譯.class文件,用如下命令:
javap -verbose Configuration.class1
查看得到的信息中,major version屬性的內容,如下
major version: 521
說明這個.class文件是由JDK1.8編譯得到的。
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版本可能會不一樣(編譯器多個項目設置不同)
6. 如何獲取jar包的jdk版本號
1,通過class文件
將編譯出來的class文件拖入到eclipse下,如:
可以看到,版本號為1.5
2,javap命令查看
javap MediaManager -verbose > majorver.txt
其中MediaManager為類名,將版本信息輸出到majorver.txt,版本信息如下:
可以看到jdk版本為47。major version和jdk版本對應關系如下:
Major version Java
46 Java 1.2
47 Java 1.3
48 Java 1.4
49 Java 5
50 Java 6
51 Java 7
jar的版本號必須和虛擬機相對應,否則會出現版本不支持的錯誤。