答案 1
我们在生产环境中使用Jacob,效果很好。然而,这些项目似乎不是很活跃。
说到这一点:活动似乎是J-Interop的一个优势。我们也尝试了这个项目,它似乎效果很好,有更好的日志记录消息。我认为我们可能会为新项目选择J-Interop。
COM4J似乎已经过时了,你是对的。
答案 2
作为一名在Java / Linux方面经验丰富的开发人员,但在Windows方面却一无所知,这是我的经验(2015年8月)...
摘要:
- 使用 com4j...需要注意的是:
- 您可能需要构建最新(未发布的)代码才能获得一些重要的最新修复程序。
更长的故事:
起初,涉及JNI的代码崩溃的倾向莫名其妙地让我寻找非JNI解决方案。J-Interop似乎符合要求。
但是,当我试图让j-interop工作时,所有的Windows DCOM权限和注册表垃圾都使它成为一个完全的PITA。对于不同版本的Windows,它是不同的,必须以管理员身份进行所需的更改等。我不明白任何这些Windows废话,它让我无论如何都想吐。
然后我尝试了com4j,它就像一个冠军一样工作。这个项目设计得非常漂亮。它从您正在使用的 DLL 自动生成 Java 接口。COM 调用约定详细信息是使用接口方法上的 Java 注释声明的,允许您在必要时调整这些细节(在我的情况下不需要调整)。
github上有几个开发人员已经分叉了这个项目,并贡献了修复,这是一个健康的迹象。
唯一需要注意的是,您可能需要一些最近的修复程序,这些修复程序自 2015 年 8 月起已合并到项目中,但不包含在最新版本(即 2014 年 3 月)中。
因此,您可能需要自己进行自定义构建,其中包括在Visual Studio中构建DLL等。即使作为一个讨厌Windows/无知的人,我也能够做到这一点。
推荐
-
如何使用Java中的RESTful Web服务获取远程/客户端IP地址? 我已经在我的项目中编写了Rest Web服务。Web服务调用可能来自不同 machine.so 我需要通过REST Web服务找出IP地址。 从这个请求.getRemoteAddr()使用这个。 但是我不能使用getRemoteAddr()。因为我的请
-
从包含大量文件的zip文件中提取1文件的最快方法是什么? 我尝试了但它们也缺少一些东西。 LZMA SDK不提供一种如何使用的文档/教程,这非常令人沮丧。没有 javadoc。 虽然7z jbinding没有提供一种简单的方法来只提取1个文件,但是,它只提供了提取zip文件
-
输入/输出流在销毁时是否关闭? Java 中的 InputStreams 和 OutputStreams 是否在销毁时关闭()?我完全理解这可能是不好的形式(特别是在C和C++世界中),但我很好奇。 另外,假设我有以下代码: 无名的FileInputStream是否在p.load
-
Java 程序中的字符串大小是否有任何限制? 我有一个字符串定义为 字符串 xx 我可以分配的字符数是否有任何限制? 2) 我正在将用户输入分配给此字符串 xx。70%的人只说一个字。有时他们给出一个大句子,所以想知道可
-
标签
推荐