首先还是不太明白你说的这个“生成版本号”是什么意思,如果只是生成一个自增序列的话
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();
}
}
}
}
代码又挤在一起了:
⑵ 查看Eclipse版本号的方法及各个版本区别Eclipse选择标准
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
查看Eclipse版本号的方法
1. 找到eclipse安装目录
2. 进入readme文件夹,打开readme_eclipse.html
3. readme_eclipse.html呈现的第二行即数字版本号,如:
Eclipse Project Release Notes
Release 4.2.0
Last revised June 8th, 2012
附:Eclipse各个版本简介(http://zh.wikipedia.org/wiki/Eclipse)
版本
从2006年起,Eclipse基金会每年都会安排同步发布(simultaneous release)。同步发布主要在6月进行,并且会在接下来的9月及2月释放出SR1及SR2版本。
Eclipse各个版本选择标准
打开Eclipse下载地址(http://www.eclipse.org/downloads/),可以看到有好多版本的Eclipse可供下载,初学者往往是一头雾水,不知道下载哪一个版本。
经常用到的是前五个版本:
Eclipse IDE for Java EE Developers:是为J2EE开发的版本;
Eclipse Classic:是Eclipse的经典版本,没有安装任何插件,纯净版,需要什么插件可以自己安装,Java初学者建议使用该版本;
Eclipse IDE for Java Developers:适用于Java开发;
Eclipse IDE for C/C++ Developers:适用于C/C++开发;
Eclipse for Mobile Developers:适用于Java手机开发
Eclipse for RCP/Plug-in Developers:用于RCP和插件开发
那么它们之间到底有什么区别呢,最大的区别就是标题和解压包大小不同。下载解压后就会发现,不同的Eclipse版本之间就是plugins/features目录下的文件不同而已。
一个标准的Eclipse的,给它添加一些JEE开发需要的plugins,比如WTP,WST等等,它摇身一变就变成”Eclipse IDE for Java EE“了。其他的也一样。作为一个熟练的Eclipse使用者,选择哪一个都可以,需要的plugin可以从Eclipse官网轻松获取。
⑶ 用java或者用javascript获取当前应用的版本号的代码。
获取当前应用的版本号:
private String getVersionName() throws Exception
{
// 获取packagemanager的实例
PackageManager packageManager = getPackageManager();
// getPackageName()是你当前类的包名,0代表是获取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
return version;
}
获取当前系统的版本号:
textView.setText("Proct Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
⑷ 怎样用java语句获得windows 版本号
Enumeration prop=System.getProperties().propertyNames();
while(prop.hasMoreElements())
{
System.out.println(prop.nextElement()+"----------"+System.getProperty((String)prop.nextElement()));
}
⑸ 怎么知道Java class文件JDK编译的版本号
首先用一些二进制查看器打开class文件,比如od或者hexmp工具。
od -x hello.class
或者
hexmp hello.class
我们会看到类似于下面的内输出容:
feca beba 0000 3300
这里我们看到前四个字节是Java class的特殊符号,叫做magic字段,用来告诉JVM这是个class文件,之后的两个字节是minor版本号,再之后的两个字节是major版本号,我们看到时33,对应下表我们知道33时JDK1.7编译的版本号。
十六进制
JDK1.5 31
JDK1.6 32
JDK1.7 33
JDK8 34
因为Java是向后兼容的,所以高版本的兼容低版本的,所以有时候你遇到java报: unsupported major.minor version 51,那就是你用低版本的虚拟机去运行高版本JDK编译的class文件了,所以低版本的虚拟机就抱怨了。这里的51是十进制,也就是十六进制的33,及对应JDK1.7,如果出现这种错误,你肯定是使用低于1.7版本的虚拟机去运行这个了。