这篇文章我们来探讨一下关于JDK、Eclipse、Myeclipse、Tomcat的版本问题。
一、关于版本的几个概念
1.32位和64位两个版本:
简言之,64位的操作系统支持识别4G以上的内存条,而32位不行。所以今天我们安装的绝大多数操作系统和各种软件都是64位的(因为我们的电脑一般都大于等于4G内存)。如果你安装了32位的jdk,但是你的jar包是64位jdk编译的,肯定是不能运行的。因此,我们强调一点:不管是JDK、Tomcat之类的什么编程相关软件,你都该安装64位的,免得日后有麻烦。64位的怎么识别?在软件下载时,一般会注明:windows64bit或者windows32bit。下载的安装包,一般也在名称里面包含:*86(32位),或者*86_*64(64位)。
2.安装包和解压包两个版本:
很多软件,既有安装版,也有解压版。以Tomcat为例,安装版就是一路next。解压版则是将压缩包直接解压,就算是完成了。
我们推荐解压版。首先解压版不会给你添加注册表或者系统服务之类的,你所不擅长的东西,免得到处是未知的垃圾。其次,解压版可以随时删除随时重解压,你在心里很清楚它安在了哪里。总而言之,解压版非常可控。并且java编程相关的很多软件都是以解压形式安装的,解压完给某几个地方配置下就可以了,非常洁净。
3.版本号的发行版本:
以JDK为例,JDK有1.5和jdk1.6的区别。无论什么软件,你学习的时候一般都是只拿一个版本来先掌握的。假如你在学习时,以1.6的环境学习的java基础知识,你可以去搜索一下“jdk1.6相对于1.5的新特性”,“jdk1.7的新特性”等等内容。你就会有这样的感受:我已经会了1.6了,并且看完1.7的新特性,相当于我会了1.7了。这样你在心中就会有很好的版本意识,会有明确的版本分界。你就不会再看到各种版本焦头烂额,其实版本也就是那么回事。“不就是多了几个功能么?”。
4.其它软件和JDK的关系:
要知道,jdk是一切java软件的基础。以tomcat为例,它是java编写 的软件,也就是说,它的开发者跟你一样用java语言写代码。
开发者使用jdk1.6写了tomcat6.0,然后用jdk1.6来编译自己的代码并生成jar包,那么tomcat6.0就是和jdk1.6属于一致版本的了。
后来发布了jdk1.7,又有人用1.7写tomcat7。
我想你应该明白了,你应该尽量让软件版本相符合,比如tomcat6运行在jdk6上,然后你写的软件也应该是jdk6编译的。这样会极大避免错误。当然,这并不是绝对要求,因为1.7也是java,1.6也是java。新版本要兼容旧版本。有些时候,低版本的软件可以运行在高版本的环境上,但是我们应该尽量避免这样做,除非你对版本的控制了然于胸。
二、JDK的相关问题
(1)下载
我并不教给你怎么安装jdk,你能在网上找到各种教程。我想告诉你怎么使自己对所有环节都了然于胸,都清楚,不迷糊。
首先,我们去官网下载正版的jdk。搜索一下“jdk”,第一个结果就是www.oracle.com的英文结果。点击进去,是jdk下载页面。“官网总是将最新的版本挂在首页,并且告诉你最新的最稳定版本是什么,同时一定给你提供旧版本的下载入口”。
页面上显示的是1.8的下载,我们不下载1.8,我们要先装1.6.把页面拉到底,找到“Java Archive”,在很多开原网站,都可以找到“Archive”的链接,它是“存档”的意思,也就是说,所有历史文档都存在这里(并且组织的很整齐)。点击链接你就可以找到javase6的下载地址。
这里有很多版本,既分操作系统又分64位和32位,同时还有“6u38”这种小版本号的区别,u38是第38次更新的意思,随便选一个就可以了,大同小异。记得去接受人家的协议,人家让你注册你也注册吧,不要太懒。
郑重提示:从网盘或者网站下载jdk这种软件,都是可耻的,就好像在买黄牛票一样,况且这里的软件可不像黄牛卖的票那样难得到,你为什么要偷这种懒呢?从其它途径下载,一点也不规范,还不安全。
另外,下载jdk这个教程,也适用于其它任何软件,希望你能记住方法,养成习惯。以后不再赘述。
(2)安装
首先,明确一个问题。jdk可以同时安装很多个,是互不干扰的。
我们点击1.6的安装包,在选择软件组件时,将jre去掉。jre是java runtime environment(java运行环境),是运行这个版本的java程序的虚拟机。jdk是java development kit(java开发工具),是能编译你写的java文件的工具,同时也带有jre。因此其实额外的jre是多余的,我们把它去掉吧。
另外,还有一个jdk源代码的选项,这个我们保留。占不了多大地方,以后可能会用到。
假如我们将jdk1.6安装在了D/jdk/1.6,然后“1.6”文件夹下面就是bin之类的文件夹。接下来,我们可以如法炮制,将jdk1.7下载安装在D/jdk/1.7。
这样我们就安装了很多个jdk。接下来就配置环境变量吧。你希望默认的环境变量是什么版本,就将JAVA_HOME设置为什么版本。比如1.6
JAVA_HOME=D/jdk/1.6
另外根据网上的步骤,配置classpath和path就可以了。如果你想切换默认jdk,把javahome改掉就行了。默认jdk是什么?假如你下载并解压了tomcat,你点击它的bin下面的startup.bat,有时候不能运行。为什么?因为你么有java运行环境,没有配置默认jdk啊。所以,配置默认jdk后,如果你电脑上安装的各种java软件没有进行特殊配置,都会使用默认的jdk来运行。
三、Eclipse的问题。
(1)Eclipse和jdk的版本。
我们知道,Eclipse其实也是java开发的软件。那么就有我们之前说过的问题了。
假如你下载的Eclipse是jdk1.7编译的,但是你是jdk1.6的环境,肯定无法运行。怎么识别eclipse的jdk版本呢?
官网的我没找到,但是这篇博客介绍的应该够你用了
http://blog.csdn.net/yuwenlanleng/article/details/59057450
我们安装Eclipse,那么系统上的jdk不能太低。
(2)Eclipse的插件版本
Eclipse的插件,是需要和Eclipse能兼容的。也就是说,我们的Eclipse如果是1.6的jdk编译的,那么插件也应该是1.6的jdk编译的。否则,安不上,或者不能用,只能换插件版本。如果插件不能换,那只能根据插件的jdk版本,换Eclipse了。
怎么看插件的版本?在这里我粘贴一下以前做的 笔记吧
————————————————————————————————————————————————————
使用7zip或者winrar打开插件的jar文件,选取任意一个class文件拷贝出来。使用jdk自带的反编译命令javap,查看编译此class的jdk版本。
首先将class拷贝到jdk的bin目录,并在此目录下运行命令行(这两个操作都是为了方便)。
例如:
D:\JDK\jdk1.7_64\bin>javap -verbose Activator.class
Classfile /D:/JDK/jdk1.7_64/bin/Activator.class
Last modified 2014-12-13; size 1349 bytes
MD5 checksum ebc57ce573f622b89267b0e8a47d00b1
Compiled from "Activator.java"
public class org.apache.hadoop.eclipse.Activator extends org.eclipse.ui.plugin.AbstractUIPlugin
SourceFile: "Activator.java"
minor version: 0
major version: 51
flags: ACC_PUBLIC, ACC_SUPER
这里是jdk版本和版本号的对照表
十六进制 十进制
JDK1.5 31 49
JDK1.6 32 50
JDK1.7 33 51
JDK8 34 52
我这里是51,因此知道此插件是用1.7编译的。那么安装插件的eclipse肯定也需要是1.7编译的。
————————————————————————————————————————————————————
另外还有一个重要的问题,我们在下载eclipse时,发现它有很多版本。有standard的,有javaee的。
要明确一个概念,eclipse是基础,其它功能全是插件。也就是说他们大同小异,如果你自己不擅长安装插件,那么可以根据它提供的各种版本来下载具体想要的。如果你擅长配置插件,可以安装比较简单的版本。
(3)Eclipse所能开发的软件的版本。
我们知道了,Eclipse是依赖于系统的jdk版本才能运行的,那么我们安了jdk1.6的Eclipse就不能开发jdk1.7的应用了吗?
当然不是!Eclipse能开发什么版本,和他自己是什么版本没关系。
我们可以在Eclipse的windows>preference>java>installed jre里面配置开发应用时使用的默认jdk版本。这个版本可以是任意的。
另外,在项目上,我们可以右键>properties>java compiler来设置这个项目所用的编译版本的jdk。这就是配置我们的项目是被什么版本的jdk编译。
我们的项目也应该引用被编译版本的jdk对吧?右键项目>build path .也就是配置构建路径,然后添加你需要的版本的jre的库。
(4)Myeclipse
Myeclipse是eclipse的一个插件,你可能觉得疑惑。打个比方,有一种把iphone套起来的充电宝,我说它是手机的配件,你应该能理解吧?那么你就应该明白为什么myeclipse竟然是eclipse的插件了,尽管它外观看起来像是一个软件,好像eclipse才是它的插件。
Myeclipse都带有一个jdk,在binary文件夹下。注意,这个jdk的版本,是这个myeclipse被编译的版本,同时也是这个myeclipse运行时所用的jre(它不使用系统默认的jdk,而是用自己带的)。myeclipse运行在什么版本的jdk上,是可以配置的,配置方式是修改myeclipse.ini文件。打开之后你就会明白怎么配置了,把它默认的jdk目录改成你的就可以了。
每个版本的myeclipse对应什么版本jdk,可以通过上述方法来查看。
四、多版本并存的问题
我们可能在开发时,同时开发好几个版本的项目,那么,我们要在eclipse中,同时配置tomcat的6.0版本和7.0版本。
我们也可能同时使用不同版本的插件,那么我们需要下载不同版本的eclipse同时使用。eclipse是不冲突的。但是要注意,各自配置一个工作空间,因为不同版本的工作空间是不一样的。
有人可能用的myeclipse。这是一个收费软件,怎么让两个版本的myeclipse同时运行,就要你自己去研究了。网上有解决方案。
五、最后的最后,我们回头看一下源码的问题
这个额问题我们永远放在最后,因为学习源码确实是困难的,是不太常用的。
在你下载任何开源软件时,都应该顺手下载它的源码,并且在你的eclipse中,将源码链接到jar包上,以便你开发时,随时点击进入查看源码。eclipse的源码配置,此处不赘述,请自行搜索。
今天的文章就到这里,内容有点长,有点复杂。感谢耐心阅读,希望对你有所帮助。欢迎多多留言批评建议。