我需要使用我的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代码运行此命令,或者这是一次性的事情?
谢谢!