1.java中的applet小程序是怎么运行在浏览器中的?
以前一直以为是客户端装有jre或者安装了插件,现在明白了,原来使用浏览器中自带的虚拟机,但是由于IE对于java支持不完全,如果要确保良好运行还是需要安装jre的,javaPlug-in软件就是使applet程序运行在sun的jre中而不是浏览器自带的虚拟机中。
2.jre版本管理
java的解决办法是每一个软件自带一套jre版本,比如oracle等软件都会同时安装jre的,如果在同一台机器上安装多个带有jre的软件,那么机器上就存在多个jre版本了,应用程序怎么查找到属于自己的jre呢?
操作系统寻找JRE的方式如下:
先找当前目录下有没有JRE
再找父目录下有没有JRE
接着在PATH路径中找JRE
注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看CurrentVersion的键值指向哪个JRE
最常用的是在PATH路径中找JRE,一般情况下,自己的程序运行之前都会先在批处理文件里面临时设置PATH,把自己用的JRE放到PATH路径最前面,所以肯定会运行自己带的JRE,不会造成版本混乱。
3.jre类库查找方法
jre中的 JRE\lib\rt.jar这个jar包,包含了所有的java 2平台标准的类库, JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载,其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被搜到,Java程序启动之前建议先把PATH和CLASSPATH环境变量设好,OS通过PATH来找JRE,确定基础类库rt.jar的位置,JRE的ClassLoader通过CLASSPATH找其它类库。
4.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调用。
分享到:
相关推荐
乙说:我本来不知道我的帽子的颜色,但是我现在知道了。答案是:甲的帽子是蓝色,乙的帽子是红色。 4. 生日问题: 小明和小强都是王老师的学生,王老师的生日是 M 月 N 日,2 人都知道王老师的生日是下列 10 组中的...
MD5和SHA-1曾经广泛使用,但由于安全性问题,现在已被更安全的SHA-256和SHA-3取代。 5. **数字签名**:数字签名结合了非对称加密和哈希函数,用于验证数据的完整性和发送者的身份。它是电子商务和电子合同中的重要...
网络基础知识大全 1 网络常用基础知识: 3 1)如何查看本机所开端口: 3 2)如何获得一个IP地址的主机名? 3 3)如何查看本机的ip地址? 3 4)再使用net命令的时候遇到一些错误代码,如何查看对应的错误信息? 4 5)...
现在,我们转向Java并发面试问题,这些问题是评估开发者在多线程环境中的理解和技能的关键: 1. **线程安全**:理解什么是线程安全,如何识别非线程安全的代码,并知道如何使用synchronized关键字、volatile变量、...
零基础入门深度学习(4) - 卷积神经网络 深度学习是一个热门的技术领域,近年来,在人工智能、图像识别、自然语言处理等领域取得了突破性的进展。零基础入门深度学习系列文章旨在帮助有理想有追求的程序员,从零基础...
6. 巧克力装盒问题中,过去每盒40块装15盒,现在只有12盒,要计算平均每盒多装的巧克力数量,首先需要知道原来的总巧克力数量,然后用这个总数除以新的盒数,最后减去原来的每盒数量。 这些题目旨在帮助四年级学生...
从文件的标题和描述中我们可以知道,该文档主要包含了计算机应用基础的考试试题及答案。在这些试题中,除了介绍计算机历史和基础概念外,还应当包含大量的计算机术语、操作系统的知识、硬件设备的基本认识等。例如,...
Linux 操作系统基础教程 清华大学信息学院计算机系 目 录 前言..........................................................................................................................................
但是凭借谷歌公司的强大实力以及与开放手机联盟的通力合作,我们相信Android会越来越好,一定会成为主流的手机操作系统平台。.. 本书分为3个部分共10章,最后还有两个附录。第1~3章介绍Android的基础知识和基本...
JTAG 介绍基础 JTAG(Joint Test Action Group),是一种国际标准测试协议(IEEE 1149.1 兼容),主要用于芯片内部测试。现在多数的高级器件都支持 JTAG 协议,如 DSP、FPGA 器件等。标准的 JTAG 接口是 4 线:TMS...
在数学奥林匹克竞赛的赛场上,年龄问题是一个让人既爱又恨的难题。它不仅考验孩子们的数学技巧...通过不断的学习和实践,学生们可以逐渐提高解决这类问题的水平,为未来在数学奥林匹克竞赛中取得好成绩打下坚实的基础。
Python 基础知识简介Python 简介 I注意本项目涵盖两个模块(模块 1 和 2)。您应尽量在模块 1 中完成前半部分问题,在模块 2 中完成后半部分问题。是时候学习一门新语言了!Python!Python 是一种流行且易于使用的...
### 你必须知道的495个C语言问题-精简版 #### 1.1 如何决定使用哪种整数类型? 在C语言中选择合适的整数类型对于编写高效且可维护的代码至关重要。通常情况下,你可以根据以下指导原则来进行选择: - **如果需要...
这类问题看似简单,但若没有掌握好换算率,很容易出现计算错误。 综上所述,考生若想在《公共基础知识》考试中游刃有余,必须对以上这些考点有着深刻的理解和熟练的掌握。掌握这些知识点不仅仅是为了应付考试,更...
1. 如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看懂它们,你就可以跳到2。 2. 要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:...
博弈论是一种用于分析决策者之间相互作用的数学理论,它起源于经济学,但现在已被广泛应用于社会学、法学、政治学、心理学等多个领域。该理论的核心是寻找博弈中的均衡点,也就是参与者在考虑到其他人的策略选择后,...
本资源摘要信息涵盖了C#基础试题和常用字符串例子,总共包括24个问题和例子,涵盖了C#基础知识、字符串定义、字符串方法、字符串操作等方面,旨在帮助读者快速掌握C#基础知识和字符串操作。 一、C#基础试题 1.什么...