JDK1.6和JDK1.7共存和Eclipse出错
来源:互联网 发布:mac系统pdf转换成word 编辑:程序博客网 时间:2024/05/17 06:09
背景:
JDK 都已经发布到1.8版本了,作为一个“怀旧”的programer,我对新版本一直没什么关注。一直都是项目需要哪个版本就用哪个版本JDK,而且我一直认为如果项目太过于依赖JDK版本的话,那开发和设计上太shit了!这几天由于一些原因需要切换到老版本的项目去做些东西。老版本(称为V1)使用的是JDK1.6开发的,新版本(称为V2)使用的是JDK1.7。现在需要两个版本的JDK共存,本以为很简单的事情,结果出了一堆问题。囧!!
问题:
1.安装了JDK1.6,copy了eclipse,get了项目代码,但是公司的eclipse插件无法运行!
2.指定了Eclipse启动时使用的JDK为1.6,报错code 13,无法启动Eclipse!
3.解决了Eclipse启动问题和插件问题,分别为项目(两个工作空间)指定了JDK版本,但是1.7版本的无法运行,会显示“找不到或无法加载主类错误”!
本来这个事件是很简单的,但是由于一些小的细节失误才导致自己绕了老大一个圈子。看来细节决定成败在哪儿都适用!
总结:
1. JDK在大版本上是允许同时存在的,但是小版本上是不允许的;
2. Eclipse本身是一个Java程序,这我们都知道,但是Eclipse启动的时候为什么找不到一个javaw进程呢?那是因为Eclipse默认调用的是jvm.dll,如果我们指定启动参数是javaw.exe那么会启动一个javaw.exe进程。
3.Eclipse也会依赖一定版本的JDK,这要看你用哪个版本的Eclipse,一般来说它是向后兼容的,也就是JDK1.5能运行,JDK1.6、JDK1.7也可以。但是不保证Eclipse的插件在不同版本的JDK上也能良好运行,比如我们公司的插件,对JDK版本依赖就很强。
4.Eclipse可以指定编译、运行Java程序的JDK版本,这个JDK版本和它本身运行时的JDK是不一样的,或者说两者毫无关系,可以是同一个JDK。
5.Eclipse分32位和64位,必须配合32位和64位JDK,否则会报错!
过程:
(1)Eclipse插件无法运行:
原因:Eclipse启动时使用的JDK版本不符合插件要求。
方法:指定Eclipse启动用的JKD,在eclipse.ini文件中添加如下参数,
-vm D:\JDK1.6\bin\javaw.exe
结果:启动的时候会报下面的错误:
(2)Eclipse启动报错,code 13
原因:至于eclipe.ini中指定的vm参数路径不对,或者是Eclipse的位数和JDK位数不一致。
方法:下载32位JDK,重新安装,指定vm参数。
PS:官网的JDK也不纯洁了,竟然向注册表写入了一些东西,然后无法卸载,只能下载个卸载工具,强制卸载清除注册表了。
结果:重新安装符合要求的JDK后,Eclipse果然能启动了,先安装的1.6然后V1项目可以用了,然后安装了1.7,给Eclipse添加了JDK1.7的路径,然后为V2指定了编译级别,但是却发生了如下错误:
(3)Eclipse指定JDK1.7编译级别报错,找不到主类
原因:最后经过一些反复查找,才发现是Eclipse下新增JDK1.7时一个参数填错了!!
在Defalut VM arguments下面竟然多填写了一个JDK1.7。导致每次Eclipse运行的时候都会去找JDK1.7这个类。o(╯□╰)o
方法:删除Defalut VMArguments参数。
PS:如果没有安装JDK或者Jre的话,Eclipse启动会报如下错误:
最后吐槽下:
公司插件竟然跟JDK依赖那么紧密,简直是shit!而且还没指导文档,浪费了近一天的时间!
然后就是Java竟然也不纯洁了,windows版下面竟然还有update程序,还会去注册表写东西!!!!你怎么能这样!
- JDK1.6和JDK1.7共存和Eclipse出错
- jdk1.6 & jdk1.7共存
- windows10下共存jdk1.6和jdk1.8
- jdk1.6,jdk1.7,jdk1.8安装共存问题。
- jdk1.6,jdk1.7,jdk1.8安装共存问题。
- jdk1.6和jdk1.7配置
- rk3288_android5.1__android4.4 jdk1.6和jdk1.7共存问题 ubuntu java7 The required version is: "1.7.x"
- ubuntu安装JDK1.6和Eclipse
- Linux下安装jdk1.7和eclipse
- substring JDK1.6和JDK1.7的区别
- jdk1.6和jdk1.7下intern()方法的区别
- jdk1.7和jdk1.6的Collections.sort方法不一样
- Linux上同时配置jdk1.6和jdk1.7
- jdk1.6和jdk1.7中substring的区别
- jdk1.7和jdk1.8区别
- JDK1.7和JDK1.8新特性
- jdk1.7和jdk1.8区别
- jdk1.7和jdk1.8区别
- MySQL how to show table in a database
- 如果你也面试04 C++虚继承的概念
- Android自定义系列(1)——自定义view 仿微信viewPage底部显示图标(整理来自慕课网)
- ubuntu怎么修改设备名称
- Animation基本功能的实现
- JDK1.6和JDK1.7共存和Eclipse出错
- ANT的一些操作
- lua学习笔记 0 android嵌入Lua
- 在线裁剪图片
- 如果你也面试05 C++中虚函数的作用是什么?它应该怎么用呢?
- Android系统内核cpufreq技术分析
- android动态添加删除布局,并且带有动画效果,点击可以展开布局
- opengl(三)
- android:layout_gravity和android:gravity的区别