`
lxz891117
  • 浏览: 33285 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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

 
阅读更多

几个概念


一、

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包。
分享到:
评论

相关推荐

    JDK和JRE文件的区别

    4. **JRE配置工具**:例如`java.exe`和`javaw.exe`,用于启动Java应用程序。 对于最终用户或那些只运行Java程序而不进行开发的人来说,安装JRE就足够了。它提供了运行任何Java程序所需的一切,而不需要编译或开发...

    jdk-6u26-windows-i586安装后jdk中jre文件

    **Java开发工具包(JDK)与Java运行环境(JRE)** JDK,全称为Java Development Kit,是Oracle公司提供的用于开发Java应用程序的软件包。它包含了编译、调试和部署Java应用所需的所有工具,如Java编译器(javac)、...

    最新版linux jdk-11.0.16_linux-x64_bin.tar.gz

    Linux JDK 11.0.16 是Java开发工具包(Java Development Kit)的一个版本,专为Linux操作系统设计,适用于64位(x64)架构。这个版本的JDK是Oracle公司发布的,包含了编译、调试、性能优化等开发Java应用程序所需的...

    jdk配套工具,jre7.zip

    8. bin:这是可执行文件的目录,包括Java虚拟机(如java.exe或javaw.exe)和其他命令行工具,如javac(编译器)、jar(打包工具)等。 总结起来,"jdk配套工具,jre7.zip"提供的是一套完整的Java 7运行环境,它包含...

    官网原版jdk1.6.0_45(linux)

    Java Development Kit(JDK)是Java编程语言的核心组件,它为开发者提供了编译、调试和运行Java应用程序所需的所有工具。JDK1.6.0_45是Oracle公司发布的一个特定版本,它针对Linux操作系统进行了优化。这个版本的JDK...

    jdk-11.0.8.jdk.zip

    JDK 11.0.8是Oracle公司发布的一个稳定版本,它包含了Java运行时环境(JRE)以及用于开发和部署Java应用的工具和库。这个版本的JDK遵循了长期支持(LTS)策略,意味着它会得到更长时间的安全更新和支持,对于企业和...

    精简版jre.zip 64位 1.8.0压缩后才20M

    Java运行环境(JRE,Java Runtime Environment)是执行Java应用程序必不可少的组件,它包含...不过,需要注意的是,如果需要进行Java开发,或者需要用到Java开发工具如JDK中的`javac`编译器,那么仍需要安装完整的JDK。

    jdk1.6.0.18

    1. **Java编译器(javac)**:它是将源代码(.java文件)转换成字节码(.class文件)的工具,使得Java程序可以在任何支持Java的平台上运行。 2. **Java虚拟机(JVM)**:JVM是Java程序的运行环境,它负责解释并执行...

    jdk1.6.0_43.zip

    Java Development Kit(JDK)是Java编程语言的核心组件,它为开发者提供了编译、调试和运行Java应用程序所需的所有工具。JDK1.6.0_43是Oracle公司发布的一个重要版本,它属于Java SE(标准版)平台,主要用于桌面...

    jdk1.8.zip

    在JRE中,Java启动器(java.exe或javaw.exe)用于启动Java应用程序,而JVM则负责加载并执行.class文件。此外,JRE还包括垃圾收集器,用于自动管理内存,避免了程序员手动内存管理的复杂性,提高了代码的稳定性和安全...

    JDK1.6.0.24-64位

    1. **Java编译器(javac)**:这是一个命令行工具,用于将源代码(.java文件)转换成字节码(.class文件),这是Java程序的二进制形式,可以在任何支持Java的平台上运行。 2. **Java虚拟机(JVM)**:JVM是Java平台...

    jdk7.win32.x86_64_1.7.0.u45

    **JDK(Java Development Kit)** 是Oracle公司提供的用于开发和运行Java应用程序的重要工具包,是Java编程的基础。在本例中,我们讨论的是JDK的特定版本——"jdk7.win32.x86_64_1.7.0.u45",这是一个面向Windows...

    JDK-1.8-windows-x64.zip

    2. **Java编译器(javac)**:javac是JDK提供的命令行工具,用于将源代码编译成可执行的字节码,这个过程称为编译。通过将.java文件转换为.class文件,使得程序可以在JVM上运行。 3. **Java解释器(java)**:此...

    jdk1.6_64bit.zip 免安装 解压版

    - `bin` 目录:包含Java编译器(javac)、解释器(java和javaw)、打包工具(jar)以及其他相关命令行工具。 - `lib` 目录:包含JDK所需的库文件,如类库和API。 - `jre` 目录:Java运行环境,包括必要的运行时组件...

    Eclipse is running in a JRE, but a JDK is required 解决方法.rar

    标题 "Eclipse is running in a JRE, but a JDK is required" 提到的问题是许多Java开发者在使用Eclipse集成开发环境时可能遇到的一个常见错误。这个错误表明Eclipse正在使用Java运行时环境(JRE)运行,而实际上它...

    官方下载jdk-8u261-linux-x64.tar.gz.zip

    1. **Java编译器**(javac):它是JDK的核心组件之一,负责将源代码(.java文件)转换为字节码(.class文件),字节码是Java平台独立的中间语言,可以在任何支持Java的平台上运行。 2. **Java虚拟机**(JVM):JVM...

    jdk1.6.0-39

    JDK的每个版本都包含了Java运行时环境(Java Runtime Environment,JRE),使得用户可以在计算机上运行Java应用程序。 JDK 1.6.0_39主要由以下几个部分组成: 1. **Java编译器**:javac是Java源代码编译器,它将...

    JDK1.6.0_13免安装版 part 2

    Java Development Kit(JDK)是Java编程语言的核心组件,它为开发者提供了编译、调试和运行Java应用程序所需的所有工具和库。JDK1.6.0_13是Oracle公司发布的JDK的一个特定版本,其重点在于提升性能、稳定性和安全性...

    jdk-8u221-macosx-x64.7z

    标题中的"jdk-8u221-macosx-x64.7z"是指Oracle公司提供的Java Development Kit(JDK)的版本8更新221(8u221),适用于Mac OS X操作系统且为64位架构。JDK是Java编程语言的核心组件,包含了编译器、调试器、文档生成...

Global site tag (gtag.js) - Google Analytics