标签:去掉 官方 jre tools.jar 效果 计算 download chap 源程序
工欲善其事必先利其器。在学习Java语言之前,必须了解并搭建好它所需要的开发环境。要编译和执行Java程序,JDK(Java Developers Kits)是必备的。下面将具体认识下JDK和JRE,并进行介绍下载安装JDK和配置环境变量的方法。
Java的跨平台是指:通过Java语言编写的应用程序在不同的系统平台上都可以运行。在这里我们要对平台进行一下解读,在菜鸟笔记 Chapter 1 计算机从0讲起中我们知道了OS的出现是为所有的开发提供了一系列的开发接口,所有现在的驱动和高级开发语言都是通过OS提供的接口来实现开发的,而无需再考虑CPU的指令集,所以这里的平台指的就是OS,Java编写的程序可以在不同的OS上运行,我们日常工作中往往是在Windows上开发的,但是部署却是在Linux上,这就是跨平台的最好解释。
原理是:Java编写的源代码经过一次编译后生成符合JVM规范的中间码,编译后的字节码采用一种针对JVM优化过的机器码形式保存。这个中间码不管编译多少次都是一样的,在需要运行的Java应用程序的平台上,JVM会将中间码解释为能够被计算机识别的机器码,所以编译只进行一次,而解释却是在程序每次运行时都需要进行的。如下图1.6所示。
图1.6 Java的跨平台性的原理
因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。
Java语言是跨平台的,而JVM不是跨平台的。
jdk是 Java 语言的软件开发工具包,是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。JDK包含的基本组件包括:
为什么JDK中包含一个JRE呢?
其一,开发完的程序,总需要运行一下看看效果。
其二,也是最重要的,JDK中的开发工具其实都是java语言编写的应用程序,为了方便使用才打包成exe文件,如果没有JRE,那么这些工具是运行不了的。
JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
简单而言:使用JDK开发完成的java程序,交给JRE去运行。
Java的JDK又称Java SE(以前称J2SE),是Sun公司的产品,由于Sun公司已经被Oracle公司收购,因此JDK可以在Oracle公司的官方网站http://www.oracle.com/index.html下载。
在Java 6 出版之后,J2SE、J2EE和J2ME正式更名,将名字中的2去掉,分别更改为Java SE、Java EE和Java ME |
下面以JDK 最新版本为例介绍下载安装JDK的方法,具体步骤如下:
n 打开IE浏览器,输入网址“http://www.oracle.com/index.html”,浏览Oracle官网,将光标移动当Downloads菜单项上,将显示下载列表下拉菜单,单击Java for Developers 超链接,如图1.7所示。
图1.7 Oracle主页
n 将跳转到JDK的下载页面,在该页面中单击最新版本JDK的超链接,即如图1.8所示的Download按钮。
图1.8 JDK的下载页
n 在进入的新页面中,需要先选中同意协议中的单选按钮,这时将显示如图1.9所示的页面,否则单击要下载的链接时不能进行下载。
图1.9 JDK最新版本的下载页面
下载时要选择适合自己操作系统平台的的安装文件,如Windows系统平台是无法安装Linux系统平台的安装文件的。如果我们需要一些旧版本的JDK则可以在进入JDK的下载链接页面后选择旧版本下载,单击进入历史页面,我们以JDK 7 为例如图1.10所示。
图1.10 历史版本的JDK下载
我们以下载的JDK 7为例进行安装介绍,步骤如下:
JavaFX是由甲骨文宣布推出的,是一款为企业业务应用提供的先进Java用户界面(UI)平台,它能帮助开发人员无缝的实现与本地java功能及Web技术动态能力的混合与匹配。
在安装完JDK后需要对环境变量进行配置,具体步骤如下所示。
创建新的变量名称:JAVA_HOME,为JAVA_HOME添加变量值:JDK安装目录,将path环境变量中JDK目录修改,%JAVA_HOME%\bin;,path环境变量具有先后顺序
我们配置成功后发现javac和java可以到处运行
我们配置成功path环境变量后发现java和javac可以到处运行,那么此时我们已不必将源代码放入bin目录下了,但是我们遇到这么一个问题就是,源文件中引用的工具类找不到此时该怎么办呢?其实这是因为Java是一种面向对象的编程语言,提供了很多开发工具类,我们在自己的代码中引用了这些类,那么是不是该告诉编译器去哪了找这些工具类了,配置CLASSPATH的目的就在于此,指定寻找.class的路径
CLASSPATH_8_64=.;D:\Java\JDK\JDK-1.8-64\lib;D:\Java\JDK\JDK-1.8-64\lib\tools.jar
作用:使classpath目录中的.class文件可以在任意目录运行
小知识:rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库
1.rt.jar 默认就在 根classloader的加载路径里面 放在claspath是多此一举
不信你可以去掉classpath里面的rt.jar
然后用 java -verbose XXXX 的方式运行一个简单的类 就知道 JVM的系统根Loader的路径里面
不光rt.jar jre\lib下面的大部分jar 都在这个路径里
2.tools.jar 是系统用来编译一个类的时候用到的 也就是javac的时候用到,实际上tools中放置的是Java提供的一些开发工具类
javac XXX.java
实际上就是运行
java -calsspath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java
javac就是对上面命令的封装 所以tools.jar 也不用加到classpath里面
3.dt.jar是关于运行环境的类库,主要是swing的包你要用到swing时最好加上
jdk1.5版本之前必须配置classpath,jvm虚拟机才能找到.class文件,1.5版本以后jvm虚拟机会默认在当前目录去找.class文件,所以我们现在的1.7版本可以不配置classpath,因为没有意义,但建议配置,考虑向下兼容的问题。
path环境变量里面记录的是可执行性文件,如.exe文件,对可执行文件先在当前路径去找,如果没找到就去path环境变量中配置的路径去找
classpath环境变量里记录的是java类的运行文件所在的目录
在初学Java的时候知道要配置环境变量,可是当回过头来整理笔记准备深层次学习的时候再次面对环境变量却问了自己一个问题:“我为什么要配置环境变量呢?”。
我们在未配置JDK环境变量的时候,如果想要在DOS下运行javac,那么就必须进入到jdk的bin目录下,然后才能执行编译,那么我们配置JDK的目的也就在于解决这个问题,环境变量配置后,然后执行javac,系统会通过path取寻找javac,如果我们不配置,那么是无法寻找到的,配置后系统可以很轻易寻找到javac,然后就在我们的源码下可以编译和执行我们所写的Java代码了。
我们知道Java是一种面向对象的高级编程语言,说白了,就是我们编程时是可以将一些已经写好的工具类当做对象来使用的,通过对象来帮助我们简略开发,就如同字符串的截取等,我们不用自己去写只要调用String的相应方法既可,可我们通过一些非IDE编写的代码,是没有包导入的,此时就用到了ClassPath,它告诉编译器到哪里找需要执行的.class文件。在这里我们要把.java和.class的路径区别开。
(1).何时需要使用-classpath:当你要编译或执行的类引用了其它的类,但被引用类的.class文件不在当前目录下时,就需要通过-classpath来引入类
(2).何时需要指定路径:当你要编译的类所在的目录和你执行javac命令的目录不是同一个目录时,就需要指定源文件的路径(CLASSPATH是用来指定.class路径的,不是用来指定.java文件的路径的)
标签:去掉 官方 jre tools.jar 效果 计算 download chap 源程序
原文地址:http://www.cnblogs.com/lin-jing/p/7989995.html