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执行脚本,兼顾两者的好处。
分享到:
相关推荐
Java深度历险 Java深度历险 Java深度历险 Java深度历险
Java深度历险---Java深度历险(一)——Java字节代码的操纵
关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的...推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。
Java深度历险 深入Java 2 SDK 深入类别载入器 Java与MS Office 用Visual Studio.net操控Java虚拟机 package与import机制 Ant 附录A.Java 2 SDK原版码概观
java深层次介绍、类加载器、本地调用、包引入机制。
Java 深度历险.pdf Java 深度历险.pdf Java 深度历险.pdf
java深度历险.rarjava深度历险.rarjava深度历险.rarjava深度历险.rarjava深度历险.rar
你想知道jvm,jdk,jre的关系吗?你想知道类加载的秘密吗?了解java细节和背后故事的好书。
Java深度历险,对于JAVA虚拟机的深度了解,CLASSPATH,类的加载,自己整理的PDF文件
java深度历险.pdf
Java深度历险.pdf
Java深度历险CH02
类装载器是Java 平台上最神秘,也是最 有趣的一个组,通过类装载器,除了可以实现程序的动态性之外,更能够做 到 无 懈 可 击 的 安 全 性
JAVA深度历险 PDF格式 王森著
java 深度历险
Java深度历险(合集).pdf,深度介绍!
java深度历险PDF版本的书,java程序猿必看的8本书籍(一) 王森