因为最近在个人eclipse开发工具上弄了很多(要求不同jdk版本的)项目,大家知道不同版本性能区分也是有点不同的,于是本着学习的态度装了很多个jdk版本,后来出问题了,冷静下来,总结了一下,原因还在于我自己对这个jdk配置的原理不太熟悉,很朦胧,相信很多开发者也是这样的,于是下定决心花时间把这个弄懂,以下是我的所获:
首先要理解什么是path(环境变量)?上面讲的很详细,相信我以后再也不会犯类似的错误了!
path(环境变量)是dos以前的内部命令,windows继续沿用至今。用作运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中去查找。
然后什么是jdk,jre?
jdk(java development kit),Java开发工具
jre(java runtime environment),Java运行环境
因为java必须经过编译才能运行,编译就要通过常用命令比如:编译javac等
而这些常用的编译命令就存放在jdk的bin目录
而window运行java编译命令的时候,本地查找不到某个命令或文件,会到path中去查找
所以不可能在每个java文件所在目录放置jdk,故把jdk放置path环境变量中,这样每个java文件都可以通过path中设定的jdk目录找到编译命令进行编译
一般设定java的时候为了在任何目录下都可以运行bin文件夹下的命令。就将java的bin目录声明到path中。
编译后的class类就要通过jre运行环境进行运行实现
这只是在文本编辑java时候需要这些,设置环境变量等
如果用开发工具Myeclipse就不需要设置,myeclipse自带jdk,就不需要环境变量
而eclipse启动时候会要求path,方法可以设置path,也可以不设置,不设置方法是:
在eclipse.exe目录里面有一个eclipse.ini文件进行配置
比如
-vm
C:\Java\jre1.6.0\bin\javaw.exe
我的是
-vm
C:\Program Files (x86)\Java\jdk1.6.0_21\bin\javaw.exe
进行设置虚拟机
可以把jdk放在你的eclipse文件夹中,配置它的目录,就不需要依靠本地jdk运行
然后就可以启动了
有点跑题哈
运行中发生什么
比如:
在D:\test目录下有HelloWorld.java(第一个程序输出HelloWorld)
D:\test>:javac HelloWorld.java //javac编译HelloWorld.java文件
首先window找HelloWorld.java文件所在目录中是否有javac命令,有就进行编译,没有找path,按照系统中定义的path目录寻找javac命令,找到进行编译,找不到就报不是外部内部命令错误
D:\test>java HelloWorld //编译通过java HelloWorld运行编译后的文件
首先window找HelloWorld.class文件所在目录中是否有java命令,有就进行运行,没有找path,按照系统中定义的path目录寻找java命令,找到进行运行,找不到就报不是外部内部命令错误
HelloWorld //输出结果
D:\test
可能有人还会问,eclipse里面通常被配置成jre而不是jdk,那我安装jdk有啥用?
eclipse它是自带编译器,所以安装jre就可以运行里面的web项目了,然而jdk就是为了让我们看源码,如代码中的(string 、int、list、map等被封装起来的源码)。
好啦,所有疑团都解开了!嘻嘻,喜欢就点点赞哦!