【问题标题】:Sign java applet step by step [duplicate]逐步签署java小程序[重复]
【发布时间】:2011-06-12 14:48:27
【问题描述】:

我正在编写一个 java 小程序,它使用 org.apache.commons.net.ftp.FTP 从网页上传文件到 ftp 服务器

小程序在 Eclipse 中工作..

我的项目包含 Uploader.java、FtpUpload_thread.java 和 commons-net-2.2.jar(用于导入 org.apache.commons.net.ftp.FTP)文件..

我使用 cmd 命令编译我的类:

javac *.java -cp *.jar

我把类放在html中:

<applet code="Uploader.class" codebase="./" archive="commons-net-2.2.jar" width="600" height="230"></applet>

但是当我尝试建立连接时出现错误:

java.security.AccessControlException: access denied (java.net.SocketPermission /*myftp*/ resolve)

所以我必须签署我的小程序..

  • 我制作我的 jar 文件:

    jar cvf Uploader.jar Uploader.class FtpUpload_thread.class commons-net-2.2.jar

  • 我生成密钥:

    keytool -genkey -alias signFiles -keystore compstore

然后我输入程序需要的值.. 现在我有了 compstore 数据库文件

  • 我签署 JAR 文件

    jarsigner -keystore compstore -storepass pass -keypass 通行证 -签名罐 UploaderS.jar Uploader.jar 标志文件

我有 UploaderS.jar 文件

所以现在我的文件夹有:

Uploader.jar
UploaderS.jar
compstore
Uploader.class
commons-net-2.2.jar
FtpUpload_thread.class

全部完成还是我需要其他步骤?

放置我的签名小程序并以权限运行它的 html 代码是什么?

谢谢!

【问题讨论】:

  • 我通过重新编译所有 Apache 库以及我的类来解决它,因此我生成了一个唯一的 jar 文件,然后我对其进行了签名

标签: java applet signed-applet


【解决方案1】:

我建议使用 java 插件而不是 标签。

您必须指定班级所需的所有 jar 并使用已签名的存档

<object classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA" width="600" height="230">
    <param name="code" value="Uploader" />
    <param name="java_archive" value="UploaderS.jar, commons-net.jar" />
    <comment>
         <embed width="600" height="230" code="Uploader" type="application/x-java-applet;version=1.6" archive="UploaderS.jar, commons-net.jar">
             <noembed>
                 No Java Support.
             </noembed>
        </embed>
    </comment>
</object>

我还建议在您的小程序类中放置一个包。

我不确定如何指定小程序使用的权限。

希望这会有所帮助。

【讨论】:

  • 1) 我建议使用 deployJava.js 脚本来处理所有这些杂乱无章的 applet/object/embed。 2) 如果这个小程序来自它上传到的同一台服务器,它需要签名的唯一原因是访问要上传的文件。 3)如果用户有新一代插件(Java 1.6.0_10+),可以使用JWS部署,使用JNLP API。 JNLP API 甚至允许沙盒(未签名)应用程序。访问本地文件系统。
  • @Andrew 非常好。您能否添加对 deployJava.js 和 webstart JNLP 项的文档的引用?
猜你喜欢
  • 2011-08-11
  • 2014-08-26
  • 2012-04-11
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
  • 2012-08-24
  • 2011-08-04
  • 1970-01-01
相关资源
最近更新 更多