`
chenming47
  • 浏览: 93231 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

《java深度历险》学习笔记--深入java 2 sdk

阅读更多

1、什么是jdk,jdk的作用?
jdk是java的开发工具,开发任何的java程序都需要jdk的辅助。


2、jdk、jre、jvm之间的关系
jdk是java的开发工具,它包含了jre;jre是java程序的运行环境;jvm是虚拟机,其本质是jre中的动态联接函数库。


3、jdk安装后为什么会有两套jre?
jdk中也含有很多用java开发的工具,这些工具本身也是java程序,也需要在jdk默认安装的jre上运行,另一套可选安装的jre则是用来运行程序员编写的java程序的,当然程序员编写的java程序也可以在jdk默认安装的jre上运行。


4、包装器的含义
javac.exe本质上是一个类的包装器,它的主要作用是执行对应的程序并且避免开发者输入过长的指令,类似于快捷方式。

 

5、包装器的运行机制
javac.exe先找到jre中的tools.jar,然后运行其中的com.sun.tools.javac.Main函数

 

6、运行jdk命令发生错误的原因
由于一台电脑中可以安装多套的jdk和jre,所以在执行类似java.exe命令时,首先要弄清楚执行的是哪套jdk下的java.exe命令,其次要弄清楚这个java.exe命令是在哪套jre下运行的,最后要确保java.exe和jre是否同一版本,否则会报版本不符错误,此外如果执行java -server -version类似的命令则要查看对应的jdk的bin目录或jre的bin目录里是否有对应的命令或文件夹结构

 

7、如何判断执行的java.exe或javac.exe是哪套jdk下的?
默认情况下程序执行的是系统环境变量path值下的第一个含有java.exe命令路径下的java.exe命令,可以通过在dos窗口下执行path=……来设定执行java.exe命令的文件目录。

 

8、java.exe寻找jre作为程序运行环境的默认顺序?
系统首先默认寻找java.exe所在目录的子目录是否有jre文件,如果没有则寻找java.exe所在目录的父目录下是否有jre文件,如果还是没有则寻找WindowsRegistry(HKEY_LOCAL_MACHINE\Software\JavaSoft\Java
Runtime Environment\)下的jre

 

9、jre之间的关系
jre就相当于一台pc,各个pc间是各自独立的个体,同样各个jre间也是各自独立的个体,对jre a进行的设置或增加类库,不会对jre b产生任何影响,反之依然

 

10、使用者环境变量与系统环境变量的区别
使用者环境变量只对当前使用者起作用,系统环境变量则对登录该系统的所有用户有效,在dos窗口中运行path命令可以发现系统环境变量默认排在用户环境变量之前。由于pc中有可能有多套的jdk及jre,所以为了避免使用用户环境变量指定的javac.exe编译后的程序,在执行java.exe命令时会在系统环境变量制定的jre上运行,从而产生错误,我们应该选择设置系统环境变量的path为妙

 

11、为了避免在dos窗口编译和运行java程序时发生错误,最好在编译和运行程序前先设定path变量为要使用的jdk的bin路径。

 

12、javac.exe 与java.exe的运行机理
javac.exe用于编译程序只有在jdk的bin目录下存在,也因此它默认使用jdk下默认安装的jre作为运行环境,而java.exe用于运行java程序在window/system32这样的文件夹中也有,它会按系统默认的顺序去寻找jre来作为程序运行环境

 

13、java -classpath 类路径 包名.主类名 该命令用于执行指定类路径下的主方法

jar包程序运行步骤:

1、在dos窗口中进入jar包所在的目录

2、执行java -classpath jar包完整名称 主类所在的包名,如果没有可以省略 主类名

 

14、jdk不但有很多的版本,而且不同的公司也有自己的jdk,比如ibm就有自己的jdk,各自的公司的jdk都有自己的优缺点,不过我们一般都用sun开发的jdk

 

15、dos中path的设置只对当前窗口有效。

 

16、classpath环境变量用于设置程序运行时的类的加载路径,如果没有设置,程序运行时则从当前窗口所在的路径下寻找class文件,如果有设置则先从classpath环境变量设置的目录下加载class然后再到当前窗口所在的路径下寻找class文件

 

17、jdk安装时设置path和classpath环境变量只是为了我们在利用dos窗口编译和运行java程序时的简便,不用一次次的在dos窗口中设置path和classpath环境变量(当然,如果你把这些写成一个bat脚本,就可以反复执行了),而如果我们才用eclipse这样的高级ide就可以不用设置这些环境变量,只要在eclipse下设置项目要使用的jdk就好了。

 

18、java.exe与jre的版本问题

执行哪个java.exe是通过系统的path变量来决定的,而java.exe在哪个jre上执行,是由java.exe的默认寻找jre的搜索顺序决定的,但是java.exe 能否正常执行,还决定于java.exe和jre的版本是否一致,如果不一致就会报版本不一致的执行错误。

 

19、设置系统环境变量的好处是不用一次次的设置path变量,坏处是容易出错。在每个dos窗口中设置特定的path变量好处是不容易出错,坏处是要一次次的输入,综合的话,最好是写一个bat执行脚本,兼顾两者的好处。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics