首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

eclipse同时使用两个不同版本Jdk引起的有关问题

2012-10-26 
eclipse同时使用两个不同版本Jdk引起的问题???? 公司的框架是在太老了,是2004年甚至更早的时候开发的框架,

eclipse同时使用两个不同版本Jdk引起的问题

???? 公司的框架是在太老了,是2004年甚至更早的时候开发的框架,基于jdk1.4,然后就一直这样用着,由于运行还算稳定,而且完整更换到新的框架工作量是在太大,而且也有风险,无人愿意承担责任,目前还继续这样用。但考虑到发展的需要,我们老大让我研究公司的另外一套东西,这是一个IDE,主要由页面设计器和工作流设计器组成,基于jdk1.5,Struts1.x。因此,我的机器上实际上由两个jdk,一个jdk1.42,一个是jdk1.5。

????? 问题是由enum引起的,在我们的项目里,由于基于1.42,因此框架的核心代码里由用"enum"做变量的情况。如java.util.Enumeration enum = null;显然,这在jdk1.42下是没有问题的。但jdk1.5下,enum已经最为了关键字,这样的代码根本无法编译通过。我把Path和Java_Home指向了jdk1.5,然后启动了Eclipse,这样,Eclipse就在Jdk1.5下构建本应运行在jdk1.4下的工程,我一看不对,就立刻取消了编译,关闭了eclipse。重新把Path和Java_Home指向jdk1.4,再次启动eclipse,发现enum的地方过不去了。可是,如果在命令行了java -version,显示的的确是jdk1.4的版本信息。

???? 我重新安装了操作系统,这次只有jdk1.42,打开eclipse,发现代码里由enum为变量名的地方还是过不去。我就在eclipse里重新建立一个项目,写个测试代码,String enum = "";发现这行代码无法编译,enum为关键字。但现在只有jdk1.42啊!

???? 换个工作区试验一下,打开eclipse,新建一个目录,作为工作区,在写个测试代码,String enum = "";立刻就编译过去了。问题水落石出,看来是曾经在jdk1.5下运行eclipse,对我项目所在的workspace做了一些设置,以后即使再次使用jdk1.4,也无法彻底消除jdk1.5曾经对工作区做的改动。
???? 看来又要从cvs上update代码了。

1 楼 njuptsoz 2008-12-28   增加点经验了:) 2 楼 kaiman 2008-12-28   没在项目里设一下编译选项的compliance level吗? 3 楼 javaeyebird 2008-12-28   eclipse支持多个jdk版本共存,你没有正确设置而已

首先eclipse本身使用啥jdk没有任何关系
在Preference里设置整个workspace的jdk:Preferences->Java->Installed JREs,把1.4和1.5的都加上

然后可以为每个工程都指定一个jdk版本:
工程的Properties->Java Build Path->Libraries->Add Library->JRE System Library->Execution Environment里选J2SE 1.4/1.5
工程Properties->Java Compiler->Enable project specific settings->JDK Compiliance选1.4/1.5
4 楼 DavyLee 2008-12-29   呵呵,见笑了,的确是我的事,自己弱,一直把eclipse当编辑器用

热点排行