Java小程序,也就是Java Applet,可以在Web浏览器中运行。Java Applet必须以脚本的形式嵌入到HTML页面中,才能在web浏览器中运行。

之前总以为本地安装了JDK,指定好JAVA_HOME和PATH环境变量,所有的Java程序就都可以运行了,后来有个同事让我帮他解决web浏览器中不能运行一个项目管理软件的甘特图时,才发现Java Applet和一般的Java应用的运行环境配置是不一样的。

在Windows上运行Java应用程序,只要有JDK的二进制目录,并指定好JAVA_HOME和PATH就可以直接使用了,并不需要通过JDK的安装程序安装。所以,可以将安装好的JDK目录打个压缩包备份起来,以后重装系统或是给其他机器装Java环境时,直接将JDK的二进制压缩包拷贝过去,解压后就可以直接使用了。

但在Windows中,配置Java Applet的运行环境,仅指定JDK目录是不行的,必须要满足:

用JRE安装程序包进行安装

JRE版本为 web浏览器提供了Java Plugin

JRE与Web浏览器的位长要一致,如都是32位,或都是64位的软件版本

这是因为,JRE安装时会将Java相关的信息写到注册表中,并为Web浏览器安装Java Plugin。Web浏览器的Java Plugin在运行Applet时,先会到Windows注册表中读取Java信息,再执行Applet程序。

这里要注意的是,JRE的版本不同,所支持的web浏览器和版本也不同。我本机的Web浏览器有IE8, Firefox16, Chrome19,安装JRE6u11后,只有IE8可以运行Applet;Firefox16下通过about:plugins可以看到有安装的Java Plugin,但无法运行Applet;而Chrome19下则显示没有Java Plugin。而安装JRE7u9后,所有的浏览器就都能运行Applet了。所以,最简单的话只需安装最新的JRE版本就行了。通常如果浏览器没有安装Java Plugin,在运行有Applet的网页时,会提示用户安装插件,一般直接安装后就可以了。

Java Tester这个网站,用于检查本地安装的JRE版本和软件厂商,同时可以检查Web浏览器是否可以运行Applet程序:

对于一般用户,安装Applet运行环境是很简单的,但有时恰恰是Java开发人员的浏览器反而运行不了Applet,这就有点寒碜了

。Java开发人员本机上往往会安装多个Java版本,有时直接将JDK目录移动或删除了,没通过Windows控制面板进行卸载,造成Windows注册表中还有残留的Java安装信息,运行Java应用没问题,但在Web浏览器中Java Plugin就找不到JRE来执行Applet了。

安装JRE后,Java控制面板上会出现一个Java图标,如果发现Java的图标显示不出来了,点击时提示找不到程序,如下图:

上面无法显示的Java图标,说明Windows上的JRE环境已经找不到了,需要重新安装JRE。正常可用的JRE环境,如下图:

点击Java图标,可以打开Java控制面板(javacpl),说明Windows上的JRE已经是可用的了。

综上,Java应用和Java Applet对运行环境的要求是不一样的。Java应用运行时,不需要找注册表,只要指定好JDK目录就能运行。而对于Applet小程序,Web浏览器中的Java Plugin要通过注册表来查找JRE环境,运行Java Applet。

因此,

建议本地Java环境:

安装一个高版本的JRE,用于支持较新的Web浏览器运行Applet小程序

Java应用所需要的JDK,直接拷贝JDK二进制目录使用,不需要安装,多个JDK可并存,执行时确定使用JDK版本。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

附录1:如果无法重装JRE,可以按下面文章中的步骤,先清除注册表中的Java残留安装信息,再运行JRE安装程序:

附录2:如何在Web浏览器中启用 Java?(必须满足JRE已安装可用,且web浏览器已安装了Java Plugin的前提)

附录3:Hello Applet

1. 编写Applet小程序,继承Applet基类:

Java代码

public class HelloApplet extends Applet {

private static final long serialVersionUID = 5511892956119084309L;

@Override

public void init() {

Graphics g = this.getGraphics();

paint(g);

}

public void paint(Graphics g) {

g.drawString("Hello Applet!", 45, 45);

}

}

2. 编译Applet

Java代码

CMD>javac HelloApplet.java

3. 在index.html网页中嵌入Applet小程序

Html代码

...

codebase=".">

...

注意:

Applet小程序必须嵌入到网页中才能运行,使用标签嵌入Applet

code属性指定Applet类

archive属性指定小程序所在的jar包,如果没有打包可省略

codebase属性指定用于查找Applet类和Jar包的根目录,这个目录是相对于网页所在目录而言的,即指定一个相对目录。codebase=".",表示,在网页目录下查找Applet小程序。

网页中要使用标签,使用时在网页中可正常运行,但在appletviewer中无法显示applet窗口。

4. 用appletviewer测试Applet小程序

Java代码

CMD>appletviewer index.html

5. 在web浏览器中运行Applet小程序

将网页拖到浏览器中查看,或将网页和Applet小程序部署到Apache的HTML文档目录下通过URL访问。

java applet配置_配置Java Applet的运行环境相关推荐

  1. java 连接池配置_【Java】java数据库连接池配置的几种方法

    今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,希望对大家有所帮助:(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹META- ...

  2. java变量设置_配置环境变量

    1.安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置": 2.选择"高级"选项卡,点击"环境变量 ...

  3. java jce 授权_【Java加密】(一)JCE配置加密算法强度不受限授权的安装

    [前言]Java加解密系列,根据实际开发进度,不定期更新 [下载]在Oracle网站上搜索, Unlimited Strength Jurisdiction Policy Files这个关键字,然后按 ...

  4. java timmer模式配置_使用java配置定时任务的几种配置方式及示例

    Spring定时器,主要有两种实现方式,包括Java Timer定时和Quartz定时器! 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 package ...

  5. java 画树_用JAVA画一颗树(Applet)

    1.松树: import java.awt.*; import java.applet.*; public class Tree extends Applet { public void paint( ...

  6. java jce配置_配置jce开发环境 | 学步园

    虽然JDK1.4将java安全包包含在核心库中,但如果不对jce进行配置,也没办法使用jce进行开发. 首先从sun网上下载jce1.2.2(我在网上看到的都是下载一个包,没用sun默认的),然后把解 ...

  7. java实验指导_《JAVA程序设计》实验指导书(完整).pdf

    XX学院java实验报告 实验一 Java实验环境的建立 一.实验目的 1.掌握Java编程环境的搭建过程: 2.掌握Jcreator pro软件的使用方法: 3.能使用Java doc文档. 二.实 ...

  8. java 分割一个_分割java

    [java]分割字符串工具类,霸气 jdk自带的 java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij ...

  9. java武功秘籍_请问java全套内容都有什么呢?

    我整理的Java全套内容学习路线,分为6个阶段(大阶段)第一阶段:java内功心法篇 第二阶段:Java武功秘籍(经典框架) 第三阶段:Java高级功法(主流框架) 第四阶段:Java成神之路 第五阶 ...

最新文章

  1. Sudo 漏洞隐患不断,macOS 也受牵连!
  2. 举头望明月打计算机术语,精选有关月亮的灯谜大全
  3. 高度平衡二叉树的构建_平衡二叉树建立及其增删改查(JAVA)
  4. Javascript 多线程?
  5. 随机模块random、os模块、sys模块、shutil模块
  6. 如何在VMware软件上安装Red hat(红帽)Linux6.9操作系统
  7. linux c中字符替换函数,Linux C 支持正则表达式的字符串替换函数
  8. mysql 调用存储过程 inout_MySQL存储过程in、out和inout参数示例和总结
  9. 简单分布式系统构建知识
  10. 中国31省R&D经费支出、R&D投入强度数据(2000-2018年)
  11. java-遍历Json
  12. Unity UGUI坐标转换
  13. 主页被修改成httpwww.yy4000.cn等类似首页,无法更改,怎么办?
  14. specular图使用方法_CSharpGL(54)用基于图像的光照(IBL)来计算PBR的Specular部分
  15. linux内核如何支持多核cpu,现在的多核CPU,Linux操作系统是否能够实现单个进程(多线程)的多核调度(跨CPU核心调度)?...
  16. 栈的输出_程序设计做题笔记:计算表达式(一):栈
  17. 电脑屏幕旋转工具 躺着看才舒服。
  18. 将串口转换成TCP连接
  19. android平台下OpenGL ES 3.0从零开始
  20. 终于可以在html上自动显示汉字拼音了

热门文章

  1. leetcode 464. Can I Win | 464. 我能赢吗(博弈论,动态规划)
  2. MySQL调优(二):数据类型和schema优化,MySQL8.0取消查询缓存的原因
  3. 【Python】选择Python2还是Python3?
  4. 【Java数据库】ORM思想:对象关系映射 使用Java容器存储多条记录
  5. ACM练习 校赛183F:公平的游戏(TLE)【vector不重复添加、删除指定元素、排序】
  6. 文章转载-见贤思齐焉,见不贤而内自省也
  7. java中使用Semaphore构建阻塞对象池
  8. window10安装python2.7_Windows10-python2.7安
  9. MyBatis拦截器原理探究
  10. 牛客网 -- 计算机历年考研复试上机题 -- 手机键盘