今天闲来无事,发现很久以前下载的《Java 深度历险》依旧静静的躺在桌面上,那就打开来看看吧。我晕!竟然是繁体的,是台湾的王森写的。算了不管那么多了,凑活着看吧!
先看导读,可能有些人觉得导读这类东西没用,其实不然。最起码能了解作者写这本书的目的、背景以及在阅读的过程中可能遇到的问题。粗略的读了一下感觉收获有两个。
一:他说SUN公司注重标准、架构,微软注重的是系统。我觉得他说的十分正确,SUN公司从来就不是一个好的产品公司,但却是一个很好的标准的制定商。就拿虚拟机来说吧,SUN公司的虚拟机确实一般,Oracle、BEA都有自己的虚拟机,但SUN公司确实虚拟机规范的制定者,这就是一个很好的例子。微软公司是一个注重系统、细节的公司,我觉得这样的公司才能开发出好的产品来。其实从中国汉字的象理来分析也是这样的,微软中有个微字,表示细小、细节注重微观。而SUN公司翻译成升阳,取其中的阳字,阳即太阳也,太阳是存在宏观的宇宙中的,SUN公司注重标准,架构也不足为奇了。好了,以上言论纯属胡扯,大家一笑了之,言归正传该说点有用的东西了。
二:就是他书中说的java.exe的运行目录。这个我是从中受到启发,对其观点不敢苟同。他的书说了很多我看也没看明白,我想算了还是我自己来吧。要想搞清楚java.exe的运行目录只需做下面的一个实验就明白了很简单的。在试验之前我说一下我的誓言环境,win XP sp1,jdk 1.6.0_04(再没有其他的java运行环境了如Oracle)。
1,修改D:\Java\jre1.6.0_04\bin目录下的java.exe为java1.exe,在cmd窗口中运行java命令.结果:正常。
2,修改D:\Java\jdk1.6.0_04\bin目录下的java.exe为java1.exe,在cmd窗口中运行java命令.结果:正常。
3,修改D:\Java\jdk1.6.0_04\jre\bin目录下的java.exe为java1.exe,在cmd窗口中运行java命令.结果:正常。
实验到这里怎么也许有的会疑惑怎么还能运行成功,难道其他的地方还有java.exe吗?其实在一个地方还有,在什么地方?就在C:\WINDOWS\system32 这里。修改这里java.exe为java1.exe 然后再运行java命令,结果出错。可能有些的试验结果不是这样的,那是可能是因为你们在PATH里面设置了java.exe的其他路径,检查下。因此我怀疑java.exe运行的命令就是这里面的。对此,有的人也说java虚拟机那么大,不会仅一个.exe文件的,其实她还有其他的.dll文件。这些文件在那里?是哪个jre?是jdk里面的吗?对此我们再做一个实验。在本实验之前,请把以前修改的改正过来。
修改D:\Java\jre1.6.0_04\bin里面的java.dll为java1.dll,在运行java命令,结果:出错。这个实验结果告诉我们什么?这个实验结果告诉我们java.exe运行所依赖的.dll就是这个目录所包含的。其实这里才是java.exe 的真正的根,c盘的是为了我们直接能运行java.exe在安装jre的时候复制进去的。
对了讲了这么多,哪么jdk里面的jre有什么作用呢?不会是用来浪费空间的吧?我个人认为jdk里面的jre是为了运行jdk里面的工具而加的。大家都知道jdk里面的很多开发工具都是用java写的,不过写好之后用包装器吧jre和jar文件包装成.exe文件。修改D:\Java\jdk1.6.0_04\jre\bin里面的java.dll为java1.dll然后到D:\Java\jdk1.6.0_04\bin执行javac命令,结果:正常。可能有的人会问为什么呢?其实呢,在我们的系统里面有两个jre,我转用的不能用了,为什么我不用公用的呢?因此我分析,能成功是因为他使用了公用的jre,如果我们把D:\Java\jre1.6.0_04\bin里面的java.dll改为java1.dll,再到D:\Java\jdk1.6.0_04\bin里面执行javac命令运行,结果:错误。由此判断出jdk里面的jre是jdk里面的工具专用的。当然也有特殊情况,例如你把jdk里面的jre的bin路径加到PATH里面,这样就暴露了这个私有的jre,这是如果没有公用的jre这个私有的jre就可能会被启用。jdk里面的jre的作用是保证jdk里面的工具能正常运行。
jdk就是java的开发工具包,jre就是java的一个运行环境。
时间过的可真快,正如那句话,一开机-关机一天过去了。
以上是我在试验的基础上得出的,感觉试验也可能有漏洞,如果有什么问题大家可以探讨一下。
邮箱:565445150@qq.com欢迎大家批评指正.
分享到:
相关推荐
java的开发工具集,顾名思义就是你做开发用的,其中来包括javac,也...所以jdk和jre的区别就度是一个用于开发,一个用于运行,联系就是他们都是java开发者所必备问的(除非你就像运行java程序,那么用jre就足够了)。
首先,JDK的重要性在于它提供了编译、调试和运行Java程序所需的所有工具。它包含Java编译器(javac)、Java虚拟机(JVM)、Java类库以及各种开发工具,如Javadoc(用于生成API文档)和JDB(Java调试器)。对于Java...
Windows 64位Java包中的jdk-6u45-windows-x64.exe和jre-6u45-windows-x64.exe是为64位Windows系统量身定制的Java开发和运行环境。理解它们的区别、安装方法和相互依赖关系,能够帮助开发者更有效地构建、测试和部署...
Java开发工具包(Java Development Kit,简称JDK)是Java编程语言的核心组件,包含了Java运行环境(Java Runtime Environment,JRE)以及一系列用于开发和调试Java应用的工具。在Windows操作系统上,安装JDK通常使用...
这个版本的JDK是Oracle公司发布的1.8更新1310(8u1310),它包含了Java运行时环境(JRE)以及用于开发和部署Java应用的工具。 首先,JRE是Java程序运行的基础,包括Java虚拟机(JVM)、类库以及其他支持Java程序...
Java开发工具包(JDK)和Java运行环境(JRE)是Java编程语言的核心组成部分,对于Windows 32位系统,这里的"jdk-6u45-windows-i586.exe"和"jre-6u45-windows-i586.exe"分别代表了这两个组件的特定版本。 首先,JDK...
解压后使用方法:(不执行下面两步,运行java -version会报下面的错误,解压命令:tar xvzf jdk1.6.0_191.linux.x64.tar.gz) # Error occurred during initialization of VM # java/lang/NoClassDefFoundError: java...
JDK(Java Development Kit)是 Java 开发工具包,提供了 Java 开发所需的所有工具和库,而 JRE(Java Runtime Environment)是 Java 运行时环境,提供了 Java 程序的运行环境。为了使用 Java,需要安装 JDK 和 JRE...
JDK(Java Development Kit)和 JRE(Java Runtime Environment)是 Java 语言的两个核心组件,它们之间存在着一定的关系和区别。下面我们将详细介绍 JDK 和 JRE 的概念、区别和关系。 JDK JDK 是 Java 语言的软件...
而JRE则是Java运行时环境,它是运行已编译的Java应用程序所必需的,包括JVM、Java核心类库和其他支持文件。 **文件名称列表:jdk1.8.0_221** 这个列表暗示了压缩包解压后,将包含一个完整的JDK 1.8.0_221安装目录...
2. **lib** 目录:存储了Java运行时所需的类库,如核心类库rt.jar,以及支持国际化、安全管理、网络等功能的jar文件。 3. **conf** 目录:存放配置文件,如`java.security`用于定义安全性策略,`logging.properties...
Java 1.8 JDK/JRE 是Java开发工具包和Java运行环境的组合,对于任何Java开发者来说都是必不可少的基础。在本压缩包中,你将找到用于编写、编译和运行Java应用程序的所有必要组件。让我们深入了解一下这两个核心组件...
JRE,即Java运行时环境,是面向Java程序的使用者而非开发者的一个环境。它包含了运行Java程序所需的组件,如Java虚拟机(JVM)、类库以及其他支持文件。简言之,如果你想在计算机上运行Java程序,那么你至少需要安装...
- **JRE与JDK的区别**:JRE(Java Runtime Environment)是运行Java应用程序所需的环境,而JDK则包含JRE以及用于开发和调试的工具。 - **版本选择**:根据项目需求和系统环境选择合适的JDK版本,32位系统需要下载...
而JRE则是Java运行环境,它包含了运行已编译的Java程序所需的组件,但不包含开发工具。 #### 一、JDK:Java的完整生态系统 JDK是面向开发者的一套全面的软件开发工具包。它不仅包含了JRE中的所有内容,还额外提供...
解压这个文件后,用户通常会得到一个包含bin、include、jre、lib等目录的结构,这些目录包含了Java开发和运行所需的各类文件,如Java编译器(javac)、Java解释器(java)、Java文档生成器(javadoc)等。...
标签“jre”再次强调了这个压缩包与Java运行环境的关联,表明它可能包含JRE,但不完整,可能缺少用于开发Java应用的工具和库,比如编译器(javac)和调试器。 在压缩包子文件的文件名称列表中,只给出了“jdk1.8.0_...