java代碼編譯版本號(Java 版本)

本文目錄一覽:

怎麼知道Java class文件JDK編譯的版本號

查看class文件編譯的jdk版本步驟如下:

首先打開cmd命令行窗口,輸入如下指令:

會輸出一些信息,大致如下:

Compiled from “HtmlCrawer.java”

public class org.eagleeye.html.HtmlCrawer extends java.lang.Object

SourceFile: “HtmlCrawer.java”

minor version: 0

major version: 50//這個便是jdk的版本信息。

jdk的版本可以參考如下對照表:

如何查看java的class文件是被哪個版本的jdk編譯的?

使用UE(Ultra Edit)打開.class文件,切換到16進位模式,查看第1行: CA FE BA BE 00 00 00 3200 75 07 00 02 01 00 27 ; … .. 前8個位元組:CA FE BA BE 是固定的後面的4個位元組:00 00是次版本號次版本號後面的4個位元組:00 32是編譯源代碼的jdk版本號32(對應十進位的50):JDK1.631(對應十進位的49):JDK1.530(對應十進位的48):JDK1.42F(對應十進位的47):JDK1.3 2E(對應十進位的46):JDK1.2 編譯器的jdk版本是1.2 編譯器的jdk版本是1.6

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的版本

(2)Project – Properties -Java Build Path 右側窗口 – Libraries 在列表裡顯示的竟然還是jdk1.6 。

(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,它相當於一個軟體的主次版本號,只是在這裡是標識的一個java Class的主版本號和次版本號。

Java如何生成版本號?比如0001 0002 0002

首先還是不太明白你說的這個「生成版本號」是什麼意思,如果只是生成一個自增序列的話

1、如果有oracle資料庫的話可以利用它的序列生成。

2、沒有oracle,用redis也行。

3、沒有資料庫,那就寫個文件來存取吧:

public class Test2 {

public static void main(String[] args) throws IOException {

System.out.println(getSequence(“d:\\test\\sequence.txt”));

setSequence(“d:\\test\\sequence.txt”, “”);

System.out.println(getSequence(“d:\\test\\sequence.txt”));

}

//讀取序列

public static String getSequence(String sequenceFile) throws IOException {

FileInputStream fileInputStream = null;

InputStreamReader inputStreamReader = null;

BufferedReader bufferedReader = null;

try {

File file = new File(sequenceFile);

fileInputStream = new FileInputStream(file);

inputStreamReader = new InputStreamReader(fileInputStream);

bufferedReader = new BufferedReader(inputStreamReader);

// 按行讀取字元串

String str;

if ((str = bufferedReader.readLine()) != null) {

return str;

}

return null;

} catch (Exception e) {

e.printStackTrace();

return null;

} finally {

if (bufferedReader != null) {

bufferedReader.close();

}

if (inputStreamReader != null) {

inputStreamReader.close();

}

if (fileInputStream != null) {

fileInputStream.close();

}

}

}

//設置序列,如果傳入的序列號為空,則在原序列的基礎上+1

public static void setSequence(String sequenceFile, String sequence) throws IOException {

if (sequence == null || sequence.isEmpty()) {

String oriSequence = getSequence(sequenceFile);

Objects.requireNonNull(oriSequence);

sequence = String.format(“%04d”, Integer.valueOf(oriSequence) + 1);

}

FileOutputStream fileOutputStream = null;

OutputStreamWriter outputStreamWriter = null;

BufferedWriter bufferedWriter = null;

try {

File file = new File(sequenceFile);

fileOutputStream = new FileOutputStream(file);

outputStreamWriter = new OutputStreamWriter(fileOutputStream);

bufferedWriter = new BufferedWriter(outputStreamWriter);

bufferedWriter.write(sequence);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (bufferedWriter != null) {

bufferedWriter.close();

}

if (outputStreamWriter != null) {

outputStreamWriter.close();

}

if (fileOutputStream != null) {

fileOutputStream.close();

}

}

}

}

代碼又擠在一起了:

讀序列:

寫序列:

運行結果:

先生成好這個文件:

沖!:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285690.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:45
下一篇 2024-12-22 15:45

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Git secbit:一種新型的安全Git版本

    Git secbit是一種新型的安全Git版本,它在保持Git原有功能的同時,針對Git存在的安全漏洞做出了很大的改進。下面我們將從多個方面對Git secbit做詳細地闡述。 一…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29

發表回復

登錄後才能評論