java编译,提示JDK版本错误!
发布网友
发布时间:2022-04-23 06:11
我来回答
共5个回答
热心网友
时间:2023-09-22 12:37
步骤一:
修改Eclipse/Myeclipse JDK版本:
Window à Preference à Java à Installed JREs
在相应的JDK版本前面打钩
步骤二:
修改项目的JDK编译版本
项目右键 à Java Compiler
修改JDK编译版本
热心网友
时间:2023-09-22 12:38
这个情况说明,JDK版本安装信息错误,一般的情况就是java版本跟JDK版本不同,或者是系统安装了多个JDK版本,导致出现这样的错误。
1.以及Unsupported major.minor version 49.0
有时候会遇到版本不匹配的问题。错误如下: bad class file: C:\Program
Files\Java\jre1.5.0_11\lib\rt.jar(java/lang/Object.class)class file has wrong version 49.0, should be 48.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
2.出现这个错误的是因为 tomcat/common/lib/ 目录底下tools.jar 的版本, 和Tomcat 选择的 JVM 的版本不一致所造成.由于 Tomcat/common/lib/ 目录底下tools.jar 的版本是 1.4, 而 Tomcat 却选择 1.5 版本的 JVM. 所以会出现
"class file has wrong version 49.0, should be 48.0" 的 error message.
3.当中 49.0 即是指 Java 的 1.5 版本, 而 48.0 是指 Java 的 1.4 版本.50.0 是指 Java 的 1.6 版本那为什么会出现 tools.jar 的版本和 JVM 的版本不符的情况呢?首先要说明, 于 tomcat/common/lib/ 目录底下的那个 tools.jar 其实不是 tomcat 自带的. 其实那是当你安装 Tomcat 时, Tomcat 从指定的 JDK 目录底下的 lib 目录抄过去的.这个 tools.jar 有何用处? 那其实是 JDK 本身附有的jar档, 是用来方便我们写 Java 程序的 (eg. 方便编译 Java). 举例说, 平时我们用的 javac 命令, 其实本身就是一个由 java 写成的程序, 而那正正就是于 tools.jar里面.那为什么 Tomcat 需要将 JDK 的 tools.jar 抄去自己那里? 那是因为 Tomcat 需要用 tools.jar 里面的 javac 程序, 去编译我们写好的 JSP 档案.可是, 编译的时候, 也需要 Java 程序本身需要的 library (class files) 才可以. 那么 Tomcat 到哪里去找那这些 library 呢? 到哪里找, 其实是取决于Tomcat 本身选定哪个 JVM, 而这个我们是可以自行到 Tomcat Configure里的 Java 版面里设定的. Tomcat 是会到你所设定的那个 JVM 所属的那个 JRE 目录底下的 lib 目录找 library, 亦即是那个 rt.jar 档桉 (Java 的 library 是在里面的). 但有时候修改后,tomcat在eclipse下启动和startup.bat启动时正常,用tomcat.exe启动时却又出现这错误了这个原因是因为你一台机子上装了两个不同的JDK版本,而系统默认当前版本是更高的1.5版本而tomcat.exe启动时使用的就是系统设置的版本了,也就是1.5了,所以就要将当前版本改为1.4版本的在注册表中修
改:HEKY_LOCAL_MACHINE-->SOFTWARE-->JavaSoft-->Java Runtime Environment 中的CurrentVersion改为1.4版本的重启就OK了关于错误Unsupported major.minor version 49.0原因是JDK1.5编译的内容放到了JDK1.4等低版本下设置「Window」->「Preferences」->「Java」->「Compiler」->「JDK Compliance level」->「1.4」即:「窗口」->「首选项」->「Java」->「编译器」->「编译器一致性级别」->「1.4」重新编译发布,OK搞定!
热心网友
时间:2023-09-22 12:38
你编译项目的jdk和你运行程序的jre不是同一个版本。
我没用过jbuilder,一种设置JBuilder,将编译jdk与运行jkd设为同一个。
如果你安装了多个版本的jdk,可以删除其他的,只保留一个。
还不行的话你用命名行编译吧。javac +文件名 编译,java +className运行
既然Jbuilder使用自带的jdk1.5,那就肯定可以用1.5 的环境运行。只是我从没有用过,没有更多的意见。
多说一句,现在Jbuilder越来越小众了,换成主流的Eclipse、netbean、IntelliJ IDEA 吧。
热心网友
时间:2023-09-22 12:39
点击菜单Tools-> Configure JDKs,单击按钮New,出现一个New JDK Wizard窗口,选择Existing JDK home path:为
D:\Program Files\Motorola\J2ME SDK v3.1\Emulator7.5,然后Name for this JDK:输入框中输入JDK的名字,
例如:Motorolar J2ME SDK, 点击OK, 至此配置完成。
然后选中你配置的jdk就行了!这个要根据你的jdk安装目录来配置。
热心网友
时间:2023-09-22 12:39
哥们,你是住我楼下的那家吧?
那天我好像听见你给人打电话问这个问题!
这个问题我也遇到过,你直接把jdk1.6中的alt-rt.jar这个jar包拷贝到jdk1.5的目录底下,把原来那个覆盖了就行;或者重新安装1.5的jdk就行。因为1.5中的那个TreeMap类是用jdk1.6编译的。不知道为什么你的包会出这个状况,反正肯定管用。
有什么问题上楼来问我吧!