标签:
SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。
JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。
JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。
原因是:当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器。C2比C1编译器编译的相对彻底,,服务起来之后,性能更高。java -version 可以直接查看出你使用的是client还是server。
java version "1.6.0_38" Java(TM) SE Runtime Environment (build 1.6.0_38-b05) Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
两种模式的切换可以通过更改jvm.cfg配置文件来实现或者在启动参数后面加上-server或者-client:
32位的虚拟机在目录JAVA_HOME/jre/lib/i386/jvm.cfg,
64位的在JAVA_HOME/jre/lib/amd64/jvm.cfg, 目前64位只支持server模式, 配置内容大致如下
32位 64位
-server KNOWN -server KNOWN -client KNOWN -client IGNORE -hotspot ALIASED_TO -client -hotspot ALIASED_TO -server -classic WARN -classic WARN -native ERROR -native ERROR -green ERROR -green ERROR
一般只要变更 -server KNOWN 与 -client KNOWN 两个配置位置先后顺序即可,前提是JAVA_HOME/jre/bin 目录下同时存在 server 与client两个文件夹,分别对应着各自的jvm。
安装JDK时一定会在其子目录下面安装一个JRE,同时在安装的过程也会询问你是否要安装一个外部的JRE。如果我们选择安装,则就同时拥有了两个jre。这两个JRE其实本质上是没有任何分别的。最主要的区别在于:JDK目录里面的JRE主要是设计用来运行JDK自带的那些工具的(Bin目录下)。而外部的JRE在安装的时候会自动拷贝到操作系统的某个路径下面,一般是:C:\Windows\system32文件夹下,该文件夹下包含:java.exe、javaw.exe、javaws.exe 三个文件。因此我们只要安装了外部的JRE,即使JDK没有安装,环境变量没有配置,则运行Java程序时都是用的外部JRE的java.exe程序来运行的。这是因为,默认情况下,system32这个path写在我们自己配置的path前面,当然这个顺序我们可以手动修改。
所以,这里要注意的是,如果在没有修改path的顺序的情况下,C:\Windows\system32里有这三个程序,那么单单修改我们的java环境变量是不够的,还要把C:\Windows\system32里的这三个程序删除才可以保证修改的环境变量有效。
JDK/JRE/SERVER/CLIENT/JAVA/JAVAC/JAVAW等等
标签:
原文地址:http://www.cnblogs.com/gjb724332682/p/4682627.html