首页 > 编程知识 正文

java代码编译版本号(Java 版本)

时间:2023-12-17 21:42:40 阅读:316725 作者:SFBF

本文目录一览:

怎么知道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();

}

}

}

}

代码又挤在一起了:

读序列:

写序列:

运行结果:

先生成好这个文件:

冲!:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。