http://blog.csdn.net/gnail_oug/article/details/53610768
如何查看.jar包的JDK版本
查看.jar包中的META-INF\MANIFEST.MF
用7-zip打开.jar包,查看META-INF\MANIFEST.MF中的内容,Build-Jdk属性就是JDK的版本,比如:
- 1
- 1
说明其JDK版本为1.5.0.22。
注意:一个.jar文件中,如果没有这个字段,就必须通过下面一种方法来查看
通过反编译.class文件来查看
解压.jar包,能得到.class文件。用JDK自带的javap反编译.class文件,用如下命令:
- 1
- 1
查看得到的信息中,major version属性的内容,如下
- 1
- 1
说明这个.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版本可能会不一样(编译器多个项目设置不同)
这种方法的示例在这里。
如何设置eclipse导出.jar的JDK版本
我们可以在同一台机器上安装多个JDK,然后在eclipse中选择不同版本的JDK来导出.jar包。
Project右键->Properties->Java Compiler中的JDK Compliance选项下,有Use Compliance from execution environment 选择JDK版本。
注意:如果一个.jar依赖于多个Project,必须将每个Project的JDK版本都选择一致。
参考
- http://stackoverflow.com/questions/4440896/java-which-version-was-a-jar-file-built-too
- http://stackoverflow.com/questions/5834794/how-to-check-the-version-of-jar-file
进入对应需要打jar的目录,输入命令: jar -cvf lkf.jar *.* (注意空格)
jar 是打jar的命令符;
-cvf 是打jar时的参数,写上就可以;
lkf.jar 是打成后的jar包名称;
*.* 是指将当前目录所有的文件都打入jar包,也可以输入*.class等。
例子:
现需要将C:\workspace\Auto\target\classes目录下的文件打jar包
1.打开cmd,cd C:\workspace\Auto\target\classes进入目录
2.输入命令: jar -cvf lkf.jar *.*或是jar -cvf lkf.jar *
3.C:\workspace\Auto\target\classes目录下lkf.jar
jar 是打jar的命令符;
-cvf 是打jar时的参数,写上就可以;
lkf.jar 是打成后的jar包名称;
*.* 是指将当前目录所有的文件都打入jar包,也可以输入*.class等。
例子:
现需要将C:\workspace\Auto\target\classes目录下的文件打jar包
1.打开cmd,cd C:\workspace\Auto\target\classes进入目录
2.输入命令: jar -cvf lkf.jar *.*或是jar -cvf lkf.jar *
3.C:\workspace\Auto\target\classes目录下lkf.jar