首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >com.jacob.com.ComFailException:无法共同创建对象

com.jacob.com.ComFailException:无法共同创建对象
EN

Stack Overflow用户
提问于 2013-08-26 14:24:59
回答 1查看 5.7K关注 0票数 0

我使用jacob加载系统证书。当我使用public static void main(String args[])或简单的Java程序运行代码时,它工作得很好,但是当我试图使用Applet运行代码时,我得到的错误如下……

代码语言:javascript
复制
com.jacob.com.ComFailException: Can't co-create object
    at com.jacob.com.Dispatch.createInstanceNative(Native Method)
    at com.jacob.com.Dispatch.<init>(Dispatch.java:99)
    at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58)
    at com.digicorp.root.SystemWrapper$1.run(SystemWrapper.java:23)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.digicorp.root.SystemWrapper.<init>(SystemWrapper.java:19)
    at com.digicorp.applet.DigitalCertificateApplet.ActiveXObject(DigitalCertificateApplet.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.plugin.javascript.Trampoline.invoke(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
    at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
    at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
    at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source)
    at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source)
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source)
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我也用http://netheadaches.wordpress.com/2012/04/22/jacob-cant-co-create-object/来解决上面的问题。它解决了简单的java程序,但在使用applet时,同样的代码会产生错误。

在将jacob用于applet时,我是否需要记住一些特定的事情。我用的是jacob-1.17

ActiveXComponent comp=new ActiveXComponent("Encryption.LoadCertificate");

在网上发现的..。

代码语言:javascript
复制
 activeXObj = (ActiveXComponent)AccessController.doPrivileged(new PrivilegedAction<Object>()
              {
                public Object run()
                {
                  return new ActiveXComponent(SystemWrapper.currentObjName);
                }
              });
EN

回答 1

Stack Overflow用户

发布于 2013-08-27 08:33:54

你看过雅各布附带的applet示例吗?下载,源代码,并看一看它。您可以在:samples\com\jacob\samples\applet中找到它。其中还有一个readme.txt文件。它描述了使jacob在applet中运行所涉及的所有步骤。简言之:

  1. 在jnlp文件中指定本机lib (使用nativelib href)
  2. 签署所有jars (自java 1.7.0_17以来,这已成为强制性的)
  3. 设置权限/使用策略文件
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18446464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档