打包分发 DigitalPersona 指纹小程序

package and distribute DigitalPersona fingerprint applet

我需要打包和分发我使用 java 和 DigitalPersona One-touch 指纹 SDK 制作的指纹小程序。

目前小程序已经使用Netbeans 8测试编译成jar

分发小程序需要打包签名,网上找了好久好像没有帮助

  1. 如何签署 jar 文件?

  2. 如果我在本地使用自己生成的密钥对 jar 文件进行签名,它可以在客户端浏览器中运行吗?

Netbeans把applet编译成jar后,我直接复制到html的同目录下,在浏览器中这样调用:

<applet id="fpa"
    code="SensorApplet" archive="FingerprintApplet.jar"
    width="300" height="400">
</applet>

小程序运行时出现以下错误

java.lang.noclassdeffounderror: com/digitalpersona/onetouch/capture/event/DPFPDataListener

How do i sign the jar files?

如果我将那个确切的问题放入 Google,最热门的是 Signing JAR Files

If I sign the jar files with self generated key locally, will it work in client browser?

简答,没有。长答案,不。但是即使有一个有效的代码签名证书,它也不会在 Chrome 中工作(他们已经删除了对小程序的所有支持)并且很快(?)将不会在 IE 或 FF 中得到支持(完全 - 同样的交易如 Chrome).

让普通用户在屏幕上看到这个小程序的唯一希望是:

  1. 使用 CA 颁发的代码签名证书对其进行签名。
  2. 使用 Java Web Start.
  3. 自由浮动启动它(未嵌入浏览器)

我找到了解决问题的方法

我能够让 Applet 在 Firefox 浏览器中工作,尽管它会弹出三个安全对话框,我只需要检查 "I accept ..." 并单击 运行

我简单地将 Netbeans 配置为在编译小程序时使用自签名证书对 Jar 进行签名。

然后我将所有 jar 库包含在小程序的存档参数中,如下所示

<applet id="fpa"
    code="SensorApplet" archive="FingerprintApplet.jar, Jarlib1.jar, Jarlib2.jar, Jarlib3.jar"
    width="300" height="400">
</applet>