jvm是jre里头一个动态连接函数库,jdk里面的jre一般用于运行java本身的程序,比如javac,等等.programfiles下面的jre用于运行用户编写的java程序.
JRE下的bin\client 或者 bin\server 的jvm.dll就是JVM了
当在控制台执行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 显示调用的详细信息
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的版本管理是非常简单有效的,也许很原始,不过很好用,简单就不容易出错。
在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里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,...当然,两套JRE中的任何一套都可以用来执行我们自己编写的JAVA程序,但是JDK里面的工具只能由C:\Program Files\Java\jdk1.5.x\目录下的JRE来执行。
jdk1.7.0_10安装后jdk中jre文件 目录:C:\Program Files (x86)\Java\jdk1.7.0_10\jre下的jre文件
jdk-6u26-windows-i586安装后jdk中jre文件 目录:C:\Program Files\Java\jdk1.6.0_26\jre下的jre文件
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
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
2.将下载的两个JAR文件复制到:JDK安装目录\jre\lib\ext下,例如我的就是D:\Program Files (x86)\java\JDK1.6\jre\lib\ext 3.打开java.security文件:在JDK安装目录\jre\lib\security下的java.security文件。
jdk1.7.0_10安装后jre7文件 目录:C:\Program Files (x86)\Java\jre7下的jre7文件
jdk1.6 安装后jre6文件 目录:C:\Program Files (x86)\Java\jre6下的jre6文件
java运行环境jdk1.8.0_131,windows下64位操作系统,添加环境变量JAVA_HOME:D:\Program Files\Java\jdk1.8.0_131 classpath:.,D:\Program Files\Java\jdk1.8.0_131jre\lib\rt.jar,D:\Program Files\Java\jdk1.8.0_131\...
安装完成后配置环境变量,在系统变量新建JAVA_HOME 值为 jdk的安装路径,例如:C:\Program Files\Java\jdk1.8.0_161,然后新建JRE_HOME,值为 jre安装路径,例如:C:\Program Files\Java\jdk1.8.0_161\jre 。现在jdk...
安装完成后配置环境变量,在系统变量新建JAVA_HOME 值为 jdk的安装路径,例如:C:\Program Files\Java\jdk1.8.0_161,然后新建JRE_HOME,值为 jre安装路径,例如:C:\Program Files\Java\jdk1.8.0_161\jre 。现在jdk...
简单的说JDK是面向开发... 如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Serv
JAVA_HOME:C:\Program Files\Java\jdk1.6.0_21 PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; classpath:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; java环境变量配置 windows xp下配置JDK环境变量: ...
在变量值中输入:JDK的存储路径(列如:C:\Program Files\Java\jdk1.6.0_03) 完成后:单击“确认” (3)单击“我的电脑”右键--属性---高级---环境变量; 在系统变量这一栏: 单击:新建 在变量名中输入:...
首先,在系统变量中新建JAVE_HOME,路径为D:\Program Files\Java\jdk1.6.0_43 其次,在系统变量的Path的路径最前面,添加 D:\Program Files\Java\jdk1.6.0_43\bin;D:\Program Files\Java\jre6\bin; 最后,在系统变量...
C:\Program Files\Java\jdk1.6.0_02\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_02\lib\tools.jar 配置完后 运行CDM,输入Javac -?。有语法提示则配置成功。Java -version 只是显示版本,不说明配置好。 最好...
C:\Program Files\Java\jdk-14.0.1\conf\security\java.security C:\Program Files\Java\jre7\lib\security\java.security C:\Program Files\Java\jre7\lib\security\java.security 打开 java.security 文件之后,...
C:\Program Files\Java\jdk1.8.0_131(JDK目录路径) ## path C:\Program Files\Java\jdk1.8.0_131\bin;C:\Program Files\Java\jre1.8.0_131\bin (jdk下的bin目录路径和jre下的bin目录路径)注意:每个路径配置完...
选中rt.jar文件的这一项:“c:\program files\java\jre_1.5.0_06\lib\rt.jar” 点 左边的“+” 号展开它, 4.展开后,可以看到“Source Attachment:(none)”,点这一项,点右边的按钮“Source Attachment...”, ...
(1)新建->变量名"JAVA_HOME",变量值"C:\Program Files (x86)\Java\jdk1.6.0_45"(即JDK的安装路径) (2)编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin” (3)新建->变量名...