我不得不承认我最后一次用Java编程是高中时的数据结构课程。所以请善待这个Java noob。
我花了很多时间在工作中组建一个C#COM库。这个库很大程度上依赖于一些新的.Net技术(WPF是最重要的),所以将它翻译成另一种语言并不是一个真正的选择。我已经测试过通过COM接口从C ++中使用这个库,这很简单。我还想证明可以从Java程序中使用这个相同的库。
所以我遇到的问题是我找不到使用Java的COM对象的免费甚至是廉价的方法。我想另一种解决方案是找到一种直接集成库的方法。有没有人对什么是最好的方法有任何意见?我在我的java环境中使用Eclipse。下面是我的C#代码曝光的示例。感谢您提供的任何指示。
//Example C# Object Code
[Serializable,
ComVisibleAttribute(true),
Guid("Long Guid String"),
ClassInterface(ClassInterfaceType.None),
ComSourceInterfaces(typeof(IFooBarStructure)),
ProgID("My Application")]
public class MyFooBarObject
{
public MyFooBarObject(){}
public string DotNetMethod(){ return String.Empty; }
}
答案 0 :(得分:1)
您可以使用JACOB
来自网站:
JACOB是一个JAVA-COM Bridge,允许您从Java调用COM Automation组件。它使用JNI对COM和Win32库进行本机调用。
听起来像你正在寻找的东西。
答案 1 :(得分:1)
如果你有一点钱花在商业产品上,我建议你看看Intrinsyc的J-Integra for COM或J-Integra for .NET产品。我使用他们的COM产品从几年前我工作的项目的Java代码访问第三方ActiveX控件(Bloomberg数据访问库),并且它工作得非常好。他们有合理的试用/演示政策,他们对支持请求非常敏感。
答案 2 :(得分:0)
如果您可以通过C ++访问您的库,则可以通过JNI访问它。 JNI很容易做,只需仔细阅读guide,特别是第8.6节,其中讨论了C和C ++之间的差异
答案 3 :(得分:0)
可以使用OOJNI完成直接Java / .NET集成。谷歌“面向对象的JNI for .NET”。
答案 4 :(得分:0)
我是jni4net的作者,JVM和CLR之间的开源内部进程桥。它建立在JNI和PInvoke之上。不需要C / C ++代码。我希望它会对你有所帮助。