通过COM或直接集成在Java中使用.Net库

3
我必须承认,我最后一次使用Java编程是在高中的数据结构课上。所以请对这个Java新手多加关照。
我在工作中花了很多时间编写了一个C# COM库。这个库严重依赖于一些新的.Net技术(WPF是其中之一),因此将其翻译成另一种语言并不是一个可行的选择。我已经通过COM接口测试过从C++中使用该库,并且这很简单。我还想证明这个库也可以从Java程序中使用。
所以我遇到的问题是,我找不到免费或者廉价的方法来从Java中使用COM对象。我猜另一个解决方案是找到一种直接集成该库的方法。有没有人能提供一些关于如何完成这个任务的最佳方式的意见?我正在使用Eclipse作为我的Java环境。下面是我的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; }

}
5个回答

1

你可以使用JACOB

来自该网站:

JACOB是一个JAVA-COM桥,允许您从Java调用COM Automation组件。它使用JNI对COM和Win32库进行本地调用。

听起来像是你正在寻找的东西。


1

如果您有一点点钱可以花在商业产品上,我建议您看看Intrinsyc的J-Integra for COMJ-Integra for .NET产品。几年前,我使用他们的COM产品从Java代码中访问第三方ActiveX控件(Bloomberg数据访问库)用于一个项目,效果非常好。他们有合理的试用/演示政策,并且对支持请求非常敏感。


0

我是jni4net的作者,这是一个开源的JVM和CLR之间的进程内桥梁。它是基于JNI和PInvoke构建的,不需要C/C++代码。我希望它能对你有所帮助。


0

可以使用OOJNI进行Java/.NET的直接集成。请搜索“Object-Oriented JNI for .NET”。


不幸的是,OOJNI的主页似乎已不再可用。这对于Java中的WPF集成也有用吗? 是否仍有任何可供下载? - milbrandt

0

如果你通过C++可以访问你的库,那么你也可以通过JNI来访问它。JNI很容易实现,只需仔细阅读指南,特别是第8.6节,其中讨论了C和C++之间的区别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接