applet升级jre1.8的问题
最近接到任务把applet程序升级GUI工具包,且要在新版本的jvm环境下运行,
对于java来说,我一直是了解点皮毛,这次任务才更深入了解了一点,中途差点放弃,研究了半个月终于搞定,总结一下供以后翻阅。 首先碰到的问题是目前都是用哪些工具包,了解awt,swing,swt的优缺点, awt内存少,成熟稳定,启动事件少,但界面丑,组件少,无扩展性。 swing是在awt的基础上构建的,它提供了awt 所能够提供的所有功能,它有丰富的组件类型,丰富的组件特性,成熟稳定,可扩展和灵活性,不过它比awt,swt更多的内存消耗,在运行时加载了大量的类,许多小的对象难以有效的被垃圾回收机制回收,因此,swing应用程序通常会因无法及时回收冗余的对象而导致性能下降。 swt是由IBM构建的一个新的GUI库,其目的在于尝试彻底解决AWT和swing带来的诸多问题,swt有丰富的组件类型,更快的响应时间,更少的内存消耗,但是它不在JRE的标准库中,必须将它和程序捆绑在一起,并为所要支持的每个操作系统创建单独的安装程序。不够成熟和稳定。 综上所述,在对GUI编程时的工具包选择得根据具体项目决定:若是需要用低内存来运行GUI程序,使用AWT会是一个不错的选择,而如果只考虑平台的移植性可优先考虑SWT/swing 下载了swt的组件包,名为repository.zip的包,通过eclipse的help ->install new software -> add(repository的目录)来安装。然后在file->new->other中新建swing项目了。 不过我已有原项目,把swt.jar加入到我原有的项目中。 安装新版本的1.8jdk 32位(开始安装1.7_80发现IE浏览器打不开applet,本电脑为64位,后改为安装1.7_80 32位的可成功显示页面),开发人员一般电脑上会有多个版本的JDK,可修改环境变量或regedit注册表修改使用的版本。 在eclipse中项目-》属性-》java build path和java compiler修改使用的jre 修改版本在window->preferences->java下的compiler和installed jres 更改JRE版本后,打包jar用tftp放入mcu中,发现用IE浏览器能显示界面但是无法登录 检查发现在socket connect时卡住堵塞无反应,但用eclipse运行无问题,上网查资料 解决问题:applet跨域访问的安全性问题 当使用域名访问时,applet跨域访问造成的安全性问题。解决方法有以下几种,目前使用第一种能成功解决问题:
1、在JRE的策略文件java.policy中添加授权
在安装目录下的lib/security目录下的java.policy文件中的grant {}中添加下面授权:
permission java.net.SocketPermission “:”, “accept,connect,resolve”;
其中*:中第一个表示允许的IP,如果是表示所有;第二个表示端口或端口范围,*表示所有端口,还可以是8080或8080-,如果是8080-则表示大于等于8080端口都允许。
"accept,connect,resolve"表示允许的操作:接受、连接、解析。
2、建立自己的策略文件
也可以建立自己的策略文件,如myPolicy.policy,在其中添加上面描述的授权,再在lib/security目录下的java.security文件中添加我们建立的策略文件:
policy.url.x=file:${java.home}/lib/security/myPolicy.policy
或者不用在java.security添加包含的策略文件,而是在启动时带一个参数
java -Djava.security.policy=myPolicy.policy
也是可以的。
3、对applet进行数字签名
首先使用JDK自带的keytool工具生成证书,再使用jarsigner来对applet的jar进行签名。
- 点赞
- 收藏
- 分享
- 文章举报
- 在JRE1.4.2以上版本中解决Javascript调用已签名Applet方法时提示没有权限问题
- Gem从1.5.3升级到1.6+后和升级到1.8+后的问题
- Django升级1.8的一些问题
- SSH项目升级JDK1.7至JDK1.8时遇到的问题及解决办法
- java applet嵌入IE8-IE11无法加载或提示java jre升级更新,更新成
- 升级java1.8及ssh版本中碰到的问题(一)
- django1.8升级1.9的几个问题
- 升级java1.8及ssh版本中碰到的问题(四)
- 升级java1.8及ssh版本中碰到的问题(二)
- ecilpse升级jdk1.8遇到若干问题
- 项目检出JRE问题(Unbound classpath container: 'JRE System Library [JavaSE-1.8]' in project 'idweb')
- matlab 2015b compile java package 编译 jre1.8 jre1.7版本不一致的问题
- mac os 升级为Mountain Lion后,eclipse找不到JRE的问题
- 【Developer Log】J2EE Eclipse从JRE1.7升级到JRE1.8
- window7 环境变量是JAVA JDK1.8和项目调用jre1.7多个版本问题
- 升级java1.8及ssh版本中碰到的问题(三)
- java项目从1.6升级到1.8遇到的问题(eclipse不支持jdk1.8与Tomcat8.0)
- Django升级1.8的一些问题
- Myecplise检测JRE出问题('JRE System Library [JavaSE-1.8]' in project 'JavaTest')