使用Java访问Windows COM接口,错误加载类型库/ DLL。 :。\ com4j.cpp

时间:2013-12-11 23:59:56

标签: java windows interface com

我需要使用我的Java应用程序访问Windows COM界面。 COM接口内置在我正在与之交谈的程序的可执行文件中。

我尝试过com4j但是一直遇到这个异常,我现在只在命令提示符下运行它 -

cmd:> java -jar tlbimp.jar -o exe -p abc.exe executableFile.exe

Exception in thread "main" com4j.ExecutionException: com4j.ComException: 80029c4
a LoadTypeLib failed : Error loading type library/DLL. : .\com4j.cpp:398
        at com4j.ComThread.execute(ComThread.java:203)
        at com4j.Task.execute(Task.java:25)
        at com4j.COM4J.loadTypeLibrary(COM4J.java:322)
        at com4j.tlbimp.driver.Lib.getLibid(Lib.java:90)
        at com4j.tlbimp.driver.Driver.addLib(Driver.java:38)
        at com4j.tlbimp.driver.Main.doMain(Main.java:123)
        at com4j.tlbimp.driver.Main.main(Main.java:56)
Caused by: com4j.ComException: 80029c4a LoadTypeLib failed : Error loading type
library/DLL. : .\com4j.cpp:398
        at com4j.Native.loadTypeLibrary(Native Method)
        at com4j.COM4J$2.call(COM4J.java:324)
        at com4j.COM4J$2.call(COM4J.java:322)
        at com4j.Task.invoke(Task.java:51)
        at com4j.ComThread.run0(ComThread.java:153)
        at com4j.ComThread.run(ComThread.java:134)

解决方法是什么(如果有的话)?这是开始的正确方法吗?从来没有和COM一起工作,所以我想知道我是否在这里正确的道路上。

此外,如果这个命令工作,我相信我会获得那里所有接口的Java定义,然后我可以直接在我的代码中访问它们?

每次我的程序启动并生成新对象时,是否必须从我的java代码运行此命令,或者这是一次性的事情?

谢谢!

0 个答案:

没有答案