Applet受限于其“沙箱”安全模型,在正常的情况下是不允许其访问磁盘的任何内容的,然而在我们的实际需求中,难免会有需要其可以访问磁盘的情景。
然而如何让Applet摆脱“沙箱”的限制呢?这需要我们通过数字签名来解决这个问题:
- 首先确保你的机器上注册了jdk环境变量,然后使用keytool -genkey -keystore supermap.store -alias supermap 生成一个supermap.store密钥库文件,别名为supermap。
- 然后就可以进行我们的数字签名操作了,在进行操作之前将你所需的class文件和相关资源文件一起打包成jar文件,通过jar cvf test.jar package1 package2...将所有需要打包的文件一起打包为test.jar。
- 如果你的程序依赖于其他的类库jar文件,而该类库jar文件将可能会对磁盘文件进行访问,那么同样也需要对该jar文件进行数字签名。
- 使用jarsigner -keystore supermap.store test.jar supermap对jar文件进行签名,在生成密钥库时指定某密码为123456,在此处生成密钥需要输入该密码123456。签名完成便可以进行html文件的编写了。
在html文件中引用applet代码比较简单如下:<applet codebase="." code="com.supermap.test.Test" archive="test.jar,com.supermap.data.jar ... "(此处可添加多个依赖库) width=1024 height-768></applet>,codebase为一个相对路径,用于指明包所在位置,archive指向所有经过数字签名以及不需要签名的jar包和依赖库。
另附:访问随jar包一起发行的媒体数据如图片,需要注意一些细节。比如为某个JButton设置图片:
JButton button = new JButton();
ImageIcon icon = new ImageIcon(getClass().getResource("picName");
button.setIcon(icon);
此处的picName应为相对其class文件的媒体文件相对路径名,如在class文件所在目录下有一个Resources目录用于存放媒体数据,picName为"Resouces/workspace_open.png"。测试通过。
在进行数字签名的时候,注意生成密钥库的目录应该和jar文件所在目录保持一致,即让keytool能找到密钥库文件supermap.store。
分享到:
相关推荐
"runqian_report4.jar" 和 "runqianReport4Applet.jar" 是润乾报表的特定版本库文件,它们在项目中的作用至关重要。 "runqian_report4.jar" 文件是润乾报表的核心组件,包含了报表设计、渲染、数据处理等功能的类库...
### Java Applet 操作本地文件 ...通过以上步骤,我们可以创建一个能够读取本地文件的Java Applet。需要注意的是,在实际部署过程中,必须确保所有必要的安全措施都已到位,以防止潜在的安全风险。
### Applet读取客户端串口数据实例详解 #### 一、引言 本文将详细介绍如何利用Java Applet读取客户端的串口数据,并将其发送至服务器进行处理。Applet是一种可嵌入到网页中的小型Java应用程序,能够在客户端浏览器...
Java Applet串口通信允许Applet与本地计算机的硬件设备进行交互,如通过串行端口与RFID读卡器建立连接,从而读取或写入RFID标签的信息。 RFID技术是一种无线通信技术,它通过无线电频率信号识别特定目标并读写相关...
这通常涉及到多线程,以便在上传过程中不阻塞用户界面,以及文件流的读取和写入。 3. **FTP服务器交互**:Java提供了`java.net.Socket`和`java.io`库,使得Applet可以直接与FTP服务器进行通信。FTP协议用于在客户端...
当Applet需要执行超越沙箱限制的操作,如读取或写入本地文件、访问网络资源等,就需要对Applet进行签名,以获得用户的信任并解除这些限制。 **签名的概念** 签名是软件发布者证明自己身份的一种方式,通过数字签名...
谷歌二维码生成3.3.3jar包是一款用于创建二维码的Java库,主要包含两个核心文件:javase-3.3.3.jar和core-3.3.3.jar。这两个文件是Zxing(又称为“ZXing,读作zebra crossing”)开源项目的组件,ZXing是一个多平台...
默认情况下,Applet不能读取、写入或执行本地文件,也不能打开网络连接。 - **数字签名**:为了突破这些限制,开发者可以对Applet进行数字签名。签名后的Applet可以向用户请求提升权限,用户确认后,Applet将获得更...
- 由于Applet的沙箱限制,从本地系统读取图片可能受限,通常需要通过HTTP或HTTPS协议从网络加载。 - 考虑到安全,Applet应该避免执行任何可能导致安全风险的操作。 7. **编译与部署**: - 开发完成后,需要使用`...
使用Java的`jarsigner`工具,我们可以对包含Applet的JAR文件进行签名。签名过程会使用开发者私钥对JAR文件的每个条目计算哈希值,并将结果用私钥加密。这使得任何人都可以验证代码没有被篡改,并确认代码的发布者。 ...
4. **jasperreports-applet-3.7.0.jar**:此文件是JasperReports的Applet版本,用于在Web环境中展示报表。Applet是一种可以在浏览器中运行的小型Java程序,通过这个jar包,用户可以在网页上直接查看和交互报表,使得...
3. **利用cookies**:Applet和JSP可以通过设置和读取cookies来共享数据。Applet可以设置cookies,然后JSP在处理请求时读取这些cookies。 4. **使用URLConnection**:Applet可以通过`URLConnection`打开与JSP的连接...
Applet配置文件(通常以`.jar`或`.jardesc`格式存储)用于指定Applet运行时所需的资源以及允许的权限。 ### JVM配置最大值 在描述中提到的“JVM配置最大值”通常是指Java虚拟机(JVM)的配置参数,尤其是与内存分配...
5. **JAR文件**:编译后的Java类库,如`FtpClient.jar`,可能包含了编译后的Applet和其他依赖库。 6. **README**:包含使用指南和项目说明的文本文件。 FTP客户端Applet的工作流程可能包括以下步骤: 1. **初始化**...
`tvnjviewer-2.7.2-bin.zip`可能包含了TightVNC Java Viewer的预编译二进制文件,包括jar包。这些文件通常用于快速部署和运行,无需用户自行构建项目。jar(Java Archive)文件是一种特殊类型的归档文件,它包含Java...
2. **JWebcamPlayer.jar**: 这是JWebcam库的一部分,可能是一个专门的播放器,能够读取和展示摄像头捕获的视频数据。 3. **http-java-applet**: 这个标签可能是指整个应用是一个基于HTTP的Java Applet,意味着它...
- 不允许Applet读取本地文件系统上的文件。 - 不允许Applet创建、修改或删除本地文件。 - 不允许Applet打开网络连接,除非连接到包含Applet的原始服务器。 例如,以下尝试读取本地文件的代码将导致错误: ```java ...