在与Firefox映像不同的地址空间中运行applet

时间:2011-04-21 20:14:02

标签: java firefox applet

我正在处理一个非常具体的问题。我正在开发一个需要访问Firefox证书库的applet(不,不幸的是,他们想要一个applet,Java Web Start不适用)。

Mozilla提供JSS(Java的网络安全服务),在给定Firefox(或Thunderbird)配置文件目录的情况下,允许程序员访问所有证书和几个加密工具。

现在,问题。我签名的applet可以执行任何Java程序。所以我可以加载运行JSS所需的本机库。问题是我在使用它时遇到访问冲突,我知道原因。崩溃发生在名为 mozcrt19.dll 的模块中,该模块似乎是Mozilla的“自定义”C运行时库,而jss4.dll和朋友很可能在MS标准C运行时进行测试。如果未加载mozcrt19.dll,则不会发生崩溃,即。 applet在浏览器地址空间的外部运行,例如使用Java Web Start。

简而言之,问题是:因为我可以摆脱该模块的唯一方法是打破Firefox地址空间,如何在没有Java Web Start的情况下运行我的java applet ,在那个地址空间之外?

或者,您可以建议我使用任何解决方法,技巧,黑客或任何方法来达到同样的效果吗?我愿意接受任何建议。

提前致谢。

2 个答案:

答案 0 :(得分:1)

请确保:

<强>窗

  • 在Mozilla下创建jss目录 安装目录。
  • 将JSS JAR文件复制到jss中 目录。
  • 将JSS本机库DLL复制到 Mozilla的安装目录。

Linux / Solaris

  • 在Mozilla下创建jss目录 安装目录。

  • 将JSS JAR文件复制到jss中 。目录

  • 将JSS本机库.so复制到 Mozilla的安装目录。

  • 设置环境变量MOZILLA_HOME 到Mozilla的安装目录 Mozilla的发布脚本。

  • 更改环境变量 LD_LIBRARY_PATH包含Mozilla的 在Mozilla的安装目录 启动脚本。

答案 1 :(得分:1)

您不必在单独的地址空间中运行applet。您可以让它启动一个单独的进程来访问证书,并与浏览器进程中运行的applet进行通信。