`

JDK中JRE与Program Files中的JRE的区别

    博客分类:
  • Java
阅读更多
jvm是jre里头一个动态连接函数库,jdk里面的jre一般用于运行java本身的程序,比如javac,等等.programfiles下面的jre用于运行用户编写的java程序.
JRE下的bin\client 或者 bin\server 的jvm.dll就是JVM了

  • 1.java.exe 如何寻找JRE库的:


当在控制台执行java.exe,操作系统寻找JRE的方式如下:
1) 先找当前目录下有没有JRE
2)再找父目录下有没有JRE
3)接着在PATH路径中找JRE
4)注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看CurrentVersion的键值指向哪个JRE

所以当运行的是jdk\bin\java.exe的时候,用的jre是bin的父目录jdk下面的jre\
运行java.exe找到了jre后有一个验证程序,验证jre和java.exe的版本是否一致,如果不一致则会发生错误

java -verbose:class Main 显示调用的详细信息
  • 2.JRE类库查找


JRE自带的基础类库主要是JRE\lib t.jar这个文件,包括了Java2平台标准版的所有类库。和JRE的版本一致。

JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载,其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被搜到,Java程序启动之前建议先把PATH和CLASSPATH环境变量设好,OS通过PATH来找JRE,确定基础类库rt.jar的位置,JRE的 ClassLoader通过CLASSPATH找其它类库。但有时候会出现这样的情况,希望替换基础类库中的类库,那么也可以简单的通过 -Djava.endrosed.path=...参数传递给java.exe,于是ClassLoader会先于基础类库使用 java.endrosed.path参数指定路径的类库。因此Java的版本管理是非常简单有效的,也许很原始,不过很好用,简单就不容易出错。
  • 3.Java的虚拟机启动和加载类库


在Console执行java.exe xxx命令以后,如前所述的寻找JRE,OS找到JRE目录,根据java.exe的传递参数,选择加载Server版的jvm.dll还是Client 版的jvm.dll,然后加载jvm.dll,把控制权交给jvm.dll。

接下来,jvm.dll进行初始化,分配内存等等动作,然后在CLASSPATH路径中寻找class,找到class以后,寻找class中的程序入口点Main函数,然后从Main函数执行程序,在执行过程中,使用ClassLoader动态加载一系列引用到的类。当调用到native方法时,jvm.dll告诉OS在JRE\bin目录下寻找某某DLL文件,调入内存,于是实现了JNI调用。

最后简单说运行实现我们希望目的目录结构(以test目录为例):
test         存项目java文件生成的.class,.jar 等文件.
test/jre/bin 复制对就jdk中的 bin目录就可以。
test/jre/lib 复制对就jdk中的 jre/lib 目录就可以。
建立以上目录结果之后就可以将test/jre/bin/java.exe 发送到桌面快捷方式。
然后修改一下那快捷快方式 目标(T)标位 改成 ...../test/jre/bin/java.exe test ,
这里要注意的是 起始位置(S) 一起在改一下!如下:...../test/ 这个为什么就不用我说了,自己体会吧。:D

对了,再烦一下,使用javaw.exe 试试,可以不要那个该死的console窗口哦。希望上面的文章对大家有所帮助。

分享到:
评论

相关推荐

    jdk和jre的区别

    ### JDK与JRE的区别 #### 一、概念解析 **JDK**(Java Development Kit):作为Java开发工具包,它是面向开发人员的核心组件。它不仅包含必要的运行环境(即JRE),还提供了完整的Java软件开发环境,包括编译器...

    jdk与jre的区别.

    例如,在安装JDK时,默认情况下会安装到`C:\Program Files\Java`目录下,并且JDK中也会自带一个JRE,通常位于`C:\Program Files\Java\jre1.5.0_15`这样的目录下。 #### 四、深入探讨 1. **为何Sun公司要在JDK中...

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

    在描述中提到的"C:\Program Files\Java\jdk1.6.0_26\jre"路径下,就是JDK安装后附带的JRE文件夹。 在JDK 1.6.0_26版本中,`jre`目录包含了以下关键组件: 1. **bin**:这个目录包含了运行Java应用程序所需的可执行...

    jdk-7u10-windows-i586安装后jdk中jre文件

    在安装完成后,JDK的主目录通常位于“C:\Program Files (x86)\Java\jdk1.7.0_10”下,这表明它是一个典型的Windows系统安装路径。 在该目录中,`jre`子目录包含了JRE的所有组件。JRE是Java应用程序运行的基石,它...

    JDK及JRE安装配置是否成功

    * 变量名:JAVA_HOME,变量值为 C:\Program Files\Java\jdk1.6.0(自己电脑 JDK 的安装路径) * 变量名:CLASSPATH,变量值为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(加.表示当前路径) 编辑已有的变量 ...

    JDK下提取jre-19.0.1

    在Windows系统中,它通常位于`Program Files\Java\jdk版本号\jre`;在Linux或macOS系统中,它可能位于`/usr/lib/jvm/jdk版本号/jre`。 3. **创建JRE**:为了提取JRE,你需要复制这个`jre`目录到一个新的位置,并重...

    JDK和jre正确安装的截图

    JRE的安装过程与JDK类似,只是安装包和安装选项略有不同。在Oracle官网下载JRE后,按照同样的步骤进行安装,但不需要配置环境变量。 **三、JDK和JRE的关联** JDK包含了JRE,所以在安装JDK后,系统已经具备了运行...

    jdk1.8.131

    classpath:.,C:\Program Files\Java\jdk1.8.0_131jre\lib\rt.jar,C:\Program Files\Java\jdk1.8.0_131\lib\tools.jar PATH:C:\Program Files\Java\jdk1.8.0_131\bin;C:\Program Files\Java\jdk1.8.0_131\jre\bin

    JDK、JRE安装以及Java环境变量配置.doc

    2. 在用户变量中单击新建按钮,新建用户变量,变量名为“JAVA_HOME”,变量值为 JDK 安装路径“C:\Program Files(x86)\Java\jdk1.6.0_38”。 3. 单击确定按钮,添加 JAVA_HOME 变量。 4. 在用户变量中单击新建按钮,...

    jdk、jre的安装及配置细节

    **Java Development Kit (JDK) 和 Java Runtime Environment (JRE) 安装与配置详解** 在计算机编程领域,Java是一种广泛使用的跨平台编程语言。为了运行和开发Java应用程序,我们需要安装JDK(Java Development Kit...

    java1.8_jdk和jre.zip

    在本文中,我们将详细探讨Java JDK和JRE的用途、安装过程以及环境变量配置。 **Java JDK** 是Java开发工具包,它是Java程序员进行开发、编译和调试Java程序所需的全套工具。JDK包括Java编译器(javac)、Java文档...

    Java环境 Eclipse配置教程+软件包jdk jre

    - `JAVA_HOME`:将其值设置为JDK的安装目录(例如:C:\Program Files\Java\jdk1.8.x_xxx)。 - `PATH`:在已有路径中添加 `%JAVA_HOME%\bin`,这样命令行就可以识别Java命令了。 4. 最后,重启你的计算机使更改...

    jdk-8u201-windows-x64

    jdk1.8版本,安装后默认在C:\Program Files\Java\jdk1.8.0_221路径 配置环境变量 新建JAVA_HOME,将jdk路径放置C:\Program Files\...C:\Program Files\Java\jdk1.8.0_221\jre\bin 即可! 最后cmd命令输入java -version

    配置java的jdk环境与资源包JDK版本:1.8.0_171

    一、JDK与JRE的区别 JDK(Java Development Kit)是Java开发工具包,包含了编译、调试、运行Java程序所需的所有工具和库。它包括JRE(Java Runtime Environment),这是运行Java应用程序所必需的环境。JRE只包含运行...

    jdk7x86安装后jre7

    在目录`C:\Program Files (x86)\Java\jre7`下,你可以找到JRE7的所有组件,包括`bin`目录下的可执行文件,`lib`目录中的类库,以及`conf`和`legal`等其他重要子目录。 3. **x86架构**: x86架构指的是32位处理器...

    jdk6x86安装后jre6

    描述中提到的目录“C:\Program Files (x86)\Java\jre6”,这是Windows操作系统中标准的JRE安装路径,特别是对于32位应用程序来说。在这个目录下,用户可以找到所有JRE 6相关的文件和子目录,包括bin、lib、man、...

Global site tag (gtag.js) - Google Analytics