步骤一:
修改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的版本号必须和虚拟机相对应,否则会出现版本不支持的错误。