JDK/JRE/SERVER/CLIENT/JAVA/JAVAC/JAVAW等等

来源:互联网 发布:淘宝话题怎么玩 编辑:程序博客网 时间:2024/06/06 13:59

几个概念


一、

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。


三、

java:执行java字节码文件,通过控制台运行,关闭控制台也会关闭java程序。
javaw:和java的功能一样,但是不通过控制台启动,也就不关联控制台,一般用来启动gui程序。
javac:用来编译java源文件。


细节一、


安装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不需要配置classpath了,默认会去找javac等目录的上级目录下的jre里面的jar包。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃菌子致幻了怎么办 野外吃了毒蘑菇怎么办 头顶头发稀少怎么办头顶头发稀 遇见无赖的人该怎么办 扶了老人被讹诈怎么办 遇见碰瓷讹人的怎么办 假机油用了4年怎么办 苹果6手机变砖头怎么办 苹果8升级变砖头怎么办 苹果id锁变砖头怎么办 钥匙断在锁里了怎么办? u型锁忽然打不开怎么办 密码门锁没电了怎么办 智能门锁没电了怎么办 十字锁钥匙丢了怎么办 罐头的拉环断了怎么办 锁坏了 打不开了怎么办 门锁锁不起来了怎么办 卧室门锁舌断了怎么办 锁舌头坏了怎么办自救 门锁斜舌头断了怎么办 锁把手断了半截怎么办 门锁那一块掉了怎么办 qq动态密码忘了怎么办 小三怀孕了原配该怎么办 我当了小三怎么办 被降职后在单位怎么办 领导故意整我该怎么办 小孩怎么教育都不听怎么办 赵本山怎么办的刘涌 起诉离婚被告不出庭怎么办 安装u盘进入系统怎么办 思讯加密狗坏了怎么办 村主任选不出来怎么办 你的id已被停用怎么办 车牌摇号中签后怎么办 北京车卖了指标怎么办 车的电脑板坏了怎么办 饭卡消磁了怎么办妙招 有好项目没资金怎么办 买的股票涨停了怎么办