Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java访问.NET/dll库/组件?_Java_.net - Fatal编程技术网

从Java访问.NET/dll库/组件?

从Java访问.NET/dll库/组件?,java,.net,Java,.net,从.NET到Java有便宜或免费的网关吗?我在看一些数据采集硬件,它有C/C++和.NET的驱动程序——我真的不想在.NET中做任何编程 更新:我没有做我最初想做的事情,但我做了类似的事情,使用JNA封装DLL中的一些函数,以便从Java控制USB硬件设备。(DLL来自设备制造商)它工作得非常好。谢谢 好吧,还有,就从谷歌搜索 您还可以使用稍微不同的方法 (不想学习.NET的原因,兴趣?它是一个很好的平台,C是一个可爱的语言……)< /P> < P>如果他们有C++版本的驱动程序,那么你可以用J

从.NET到Java有便宜或免费的网关吗?我在看一些数据采集硬件,它有C/C++和.NET的驱动程序——我真的不想在.NET中做任何编程

更新:我没有做我最初想做的事情,但我做了类似的事情,使用JNA封装DLL中的一些函数,以便从Java控制USB硬件设备。(DLL来自设备制造商)它工作得非常好。谢谢

好吧,还有,就从谷歌搜索

您还可以使用稍微不同的方法


(不想学习.NET的原因,兴趣?它是一个很好的平台,C是一个可爱的语言……)< /P> < P>如果他们有C++版本的驱动程序,那么你可以用JNI写一个包装器,然后用java加载。JNI可能有点麻烦,但它会让你使用C++版本的驱动程序,而不需要处理.NET,如果你不想要。

< p>你也可以尝试访问本地库。JNA为Java程序提供了对本机共享库(Windows上的DLL)的轻松访问,无需编写除Java代码以外的任何内容—无需JNI或本机代码。如果他们的API相当直接,这可能是阻力最小的路径


查看他们调用一些本机代码的位置(printf和GetSystemTime)

如果您有一个Java应用程序,其他人提到的JNI将是一个不错的选择。您编写了一些包装器类,就这样

如果编写wrappes是一项太大的任务(取决于必须包装的方法的数量),请查看。我认为它会自动生成包装,但我从来没有真正使用过它

如果您想用Java语言编写代码,但不关心程序是否在JRE/JVM上运行,那么您最好使用Microsoft J#。基本上,它编写的Java代码被编译成.NET字节码,可以使用驱动程序的.NET类以及现有的Java类。如果您现有的Java代码比Java1.4更新,那么使用J#会遇到问题,请查看如何解决这些问题


从那时起,您可以稍后使用J#、C#或任何其他.NET语言添加代码。但是,您不会轻易回到JRE/JVM。

我倾向于使用C#进入深层,因为它与Java非常相似。我这样做了,并使用IKVM编译了我最喜欢的Java库。对于.NET程序集,您可以[几乎]启动所有核心java运行时类,因此,如果您厌倦了寻找正确的C#集合类型,您可以始终返回java.util。(但没有通用集合。不确定原因。)

根据您所处的平台,您也可以选择几种免费IDE。对于windows,您可以免费获得Visual Studio Express,但我也可以使用。您还可以在Linux上获得MonoIDE(我想还有一些Unix的风格?)


如果你已经了解Java,那么C#学习曲线是很浅的。我只在不知从哪里冒出来的地雷上炸断了1.5条腿,原因我仍然不明白,但解决办法很容易找到。最糟糕的是那些该死的开发人员文档,由于速度太慢,这些文档非常糟糕。我真的很怀念JavaDoc的活泼。不仅在线文档的速度令人难以置信地慢,还有人不确定地决定将类摘要、构造函数和方法/属性都放在单独的页面上,这使得问题变得更加复杂,因此这需要永远的时间。有人说,获得文档安装程序,并在本地安装文档,以略微改善体验。我想这是个不错的主意。

我是JVM和CLR之间的开源进程间桥梁的作者。它建立在JNI和PInvoke之上。不需要C/C++代码。我希望它能对您有所帮助。

的确如此,我在上周学习了C#(根据我前面的问题),并在那一周内成功地用Java重写了一个15000行的程序。不是写得很好,但是一个不错的开始。为什么不呢。NET:在过去的17年里,我因为不得不做微软的编程而遭受了太多的痛苦。我有点厌倦了花费过多的神经元来学习它们奇怪的怪癖。我希望你喜欢Java内置的日期/时间API,以及广泛使用字符串进行字符编码…:)(说真的,在大多数方面.NET都从第二名中受益匪浅。请随时给我C#而不是Java。话虽如此,我每周使用Java 4天……)所有这些都很好。我很快就会在家里买一台Macintosh电脑,在过去一年左右的时间里,我一直在缓慢地向跨平台技术(如XUL/Javascript/Java)迁移——太多的实例遇到了我无法再维护的旧ATL/Win32代码,因为我记不得了。一个硬件的驱动程序似乎不是切换开发语言的好理由。根据时间和语言的经验,我宁愿切换硬件:也许你应该改变问题的标题,因为它是关于使用.NET或C++与java,而不仅仅是.NET。即使如此,看看这篇文章,还是有点不清楚您是想在.NET环境中使用Java代码,还是想在.NET环境中使用Java代码。有什么建议吗?这是以Java为中心的。也许“从Java访问.NET”?这是真的。。。这似乎是一种巨大的痛苦。我不知道为什么硬件制造商不支持Java:(另外,对于我必须使用的每个不同的数据采集系统,我都必须一遍又一遍地这样做:bleah:8pYea,这将是非常烦人的。但是你问了一个避免.Net的方法。:)没错,这就是为什么我给你+1,让你跳出框框思考的原因。:)+1关于地雷的评论:)“不仅在线文档速度慢得令人难以置信,还有人不确定地决定将类摘要、构造函数和方法/属性都放在单独的页面上,这让问题变得更加复杂,所以这只需要永远。”是的,这是微软的(