关于eclipse的问题
为何把Javabuildpath下的library(JRE)去掉后工程就会报错,而新建的工程可以运行的,eclipse绑定的默认jdk不是已经包含了jre了吗,为何还要专...
为何把Java build path下的library(JRE)去掉后工程就会报错,而新建的工程可以运行的,eclipse绑定的默认jdk不是已经包含了jre了吗,为何还要专门指定jre
展开
1个回答
展开全部
那个 JRE 就是编译用的,没有那个 JRE 库就相当于你没有使用一个 JRE,那当然无法编译了。
Eclipse 绑定的默认 JRE 本来就是在创建一个新的项目时自动添加到 Libraries 中去的(我们创建之后还可以再更换它),这本身是合理的设计,如果说 eclipse 绑定了默认的 JRE 我们不添加 libraries 也能编译的话,那么就是要假设一个 workspace 只能用一个JRE,我们就无法在一个 workspace 中同时使用 JDK 5 和 JDK 6,换句话说,当我们想测试我们的产品能否同时运行在JDK5 和JDK6中我们还必须要把代码复制到2个不同的workspace 中来测试,这反而成为一个麻烦的事情(因为相应地的我们还要再配置一次像 CVS/SVN 这样项目管理相关的设定),另外我们很多产品在设计时服务端和客户端是可以分开的,服务端升级到最高版本,但客户端可以选择使用老的JDK,因此一个 workspace中应该允许多个不同的 JRE 同时工作,我们也不希望工作中需要经常同时开着多个不同的workspace吧,不方便又费内存。
这里面 Eclipse 编译跟我们命令行编译略有不同, eclipse 自已带了编译器,但没有带 JRE 默认的库,因此它要编译还需要添加 JRE 库,而 JDK 编译则因为 JDK 自带一个 JRE 库。
Eclipse 绑定的默认 JRE 本来就是在创建一个新的项目时自动添加到 Libraries 中去的(我们创建之后还可以再更换它),这本身是合理的设计,如果说 eclipse 绑定了默认的 JRE 我们不添加 libraries 也能编译的话,那么就是要假设一个 workspace 只能用一个JRE,我们就无法在一个 workspace 中同时使用 JDK 5 和 JDK 6,换句话说,当我们想测试我们的产品能否同时运行在JDK5 和JDK6中我们还必须要把代码复制到2个不同的workspace 中来测试,这反而成为一个麻烦的事情(因为相应地的我们还要再配置一次像 CVS/SVN 这样项目管理相关的设定),另外我们很多产品在设计时服务端和客户端是可以分开的,服务端升级到最高版本,但客户端可以选择使用老的JDK,因此一个 workspace中应该允许多个不同的 JRE 同时工作,我们也不希望工作中需要经常同时开着多个不同的workspace吧,不方便又费内存。
这里面 Eclipse 编译跟我们命令行编译略有不同, eclipse 自已带了编译器,但没有带 JRE 默认的库,因此它要编译还需要添加 JRE 库,而 JDK 编译则因为 JDK 自带一个 JRE 库。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询