如果安装 JDK1.3那么安装程序一定会同时安装两套 JRE。 一套位于 jdk\jre 目录 一套位于 program files\JavaSoft 目录 如果是 JDK 1.4可以选择是否安装 program files\java 目录下的 jre,但是 jdk 安装目录下的 jre 这套 jre 必须安装 JRE 与 PC 比较 JRE: java 类函数库>原生函数库.dll>JAVA 虚拟机(jvm.dll)>帮助函数库.dll PC: Win32 API .dll>CPU 编写好的 Java 源文件必须要有 JRE 才能帮助我们运行,Java 虚拟机只是 JRE 里的一个 成员而已,或者说 jvm 只是 jre 里头一个动态连接函数库, jdk 里面的 jre 一般用于运行 java 本身的程序,比如 javac,等等.programfiles 下面的 jre 用 于运行用户编写的 java 程序. JRE 下的 bin\client 或者 bin\server 的 jvm.dll 就是 JVM 了 ---------------------------在刚装好 jdk,没有对
计算机进行任何设置时,进入命令行窗口 C:\Documents\Administrator>java -version java version "1.5.0_11" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing) C:\Documents\Administrator>java -server -version Error: no `server' JVM at `C:\Program Files\Java\jre1.5.0_11\bin\server\jvm.dll' ----------------------------------当设置 path 路径中包含 jdk\bin 目录后 ---------------------------C:\>set path="C:\Program Files\Java\jdk1.5.0_11\bin"; %path%; C:\>java -version java version "1.5.0_11" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing) C:\>java -server -version java version "1.5.0_11" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03) Java HotSpot(TM) Server VM (build 1.5.0_11-b03, mixed mode) -server 的-version 就可以显示出来了 ---------------------------JDK 里用
Java 所写的开发工具 如 javac.exe jar.exe 都存放在 JDK 安装目录\lib\tools.jar 这个档案中 javac.exe 只是一个包装器(wrapper),而制作目的是为了让开发者免于输入太长的指令。 实际等于: java -classpath x:\jdk1.xx\lib\tools.jar com.sun.tools.javac.Main 当用 j2me 开发 palm 应用程序的时候, 工具会帮我们打包 jar 档,然后用一个 RPC 档的 外壳罩住,让 java 程序看起来像是一个原生(native)的应用程序。 用.
NET 开发出来的执行文件也是一个包装器的概念。 JDK 里面的工具几乎全是用 java 所写的,所以 JDK 本身就是 Java 应用程序,因此要用 JDK 附的工具来开发 Java 程序, 也必须要自行附一套 JRE 才行。这就是 JDK 安装目录\jre 下需要一套 JRE 的原因。 位于 program files\下的那套 JRE 就是拿来执行我们自己写的 java 应用程序。不过,两 套中任何一套 JRE 都可以拿来执行我们所撰写的 Java 应用程序, 可是 JDK 内附的开发工具在预设使用包装器(.exe) 来启动的情形下,都会自己去选用 \jre 底下那套
JRE。 -----------------------到底是执行哪一个 java.exe java xxx 当一台机器上有多个 jvm 可选择的时候,jvm 的选择步骤: 1)当前目录有没有 jre 目录(不准确), 2)父目录下的 jre 子目录 3)注册表 HEKY_LOCAL_MACHINE\SoftWare\Java\Java Runtime Environment\ 所以当运行的是 jdk\bin\java.exe 的时候,用的 jre 是 bin 的父目录 jdk 下面的 jre\ 运行 java.exe 找到了 jre 后有一个验证程序,verify.dll 验证 jre 和 java.exe 的版本是否一致, 如果不一致则会发生错误 一般把
常用的工具档放到 JDK 目录\jre\lib\ext 下 把有关安全机制的配置文件放到 JDK 目录\jre\lib\security 下 调用了其他 Java 函数库的程序,在编译阶段没有问题,可是却无法执行,显示 ClassNotFoundException 的原因可能是: 在 system32和 jdk\bin 目录下都有 java