问题标签 [jni4net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 jni4net 传递的两种方式对象(是:忽略缺失的类)
我正在使用 jni4net 从 C# 应用程序中访问 Java 代码,反之亦然。jni4net 使用反射来生成 JNI 代码代理,因此显然限制之一是您的 Java 和 C# 代码必须编译才能构建代理。
不幸的是,这可能会导致 catch-22 问题。考虑:
C# 类 X 使用 Java 类 Y
Java 类 Y 使用 C# 类 X
两者都不能编译,因此完善的解决方法是采用其中一个类(X 或 Y),将其剥离到其裸签名并对其进行编译,然后从编译的骨架生成代理。然后,您可以将剥离的课程替换为原始课程,然后继续您的快乐之路。
这对我来说似乎是一种丑陋的方法,我相信应该有更好的方法。一个明显的解决方案是告诉编译器(无论是 C# 还是 Java,哪个都无所谓)忽略对缺失类的引用。
对于 C# 或 Java 编译器,忽略对某个缺失类的引用是否可行?有没有更好的方法来做到这一点(不,我不愿意考虑套接字或任何类似性质的东西;我需要.NET 和 Java 之间的真正互操作)?
请求示例代码:
为清楚起见,删除了 jni4net 桥接代码的示例代码。IA 和 IB 是简单的接口,也不包括在内。
爪哇:
C#:
java - 发现 jni4net 样本
我正在发现jni4net。这是用于在 Java 和 .NET 之间架起桥梁的技术。因此,我创建了新的 Eclipse Java 项目并将 jni4net-0.8.6.0-bin/samples/myCSharpDemoCalc->MyCalcUsageInJava.java 中的示例代码复制到该项目中。但是无法编译代码,因为找不到两个导入“mycsharpdemocalc.DemoCalc”和“mycsharpdemocalc.ICalc”。我不明白如何将 mycsharpdemocalc.c 集成/导入到 Java 项目中以便可以编译代码。
java - 最好的选择。在 Java 应用程序中使用 .Net Dll
我知道三个是关于这个的一些问题,但我还没有找到确切的答案。我们有一个没有依赖项或 p/Invoke 的 .Net dll (C#)。所以它是一个完整的.net 平台库。我们的一位客户想要在 Java 应用程序中使用它。
最好的选择是什么?我一直在研究 jni4net 这可能是一个完美的解决方案,但它似乎不支持 .Net 中的泛型(我们的 dll 使用很多泛型字典和集合)
是JNA最好的选择吗?
提前致谢
java - Windows下JNI和C入门
我是 Java 学习新手,第一次想开始 JNI。我正在使用 Cygwin,我创建了一个扩展名为 .java (Helloworld.java) 的文件,如下所示:
然后我通过命令行()编译文件,然后通过命令javac Helloworld.java
创建一个本机头文件javah –jni Helloworld
然后还通过创建一个C文件来实现:
在那之后我运行命令
在 Cygwin 的命令提示行中给出消息
如何运行以及设置执行文件的路径的程序是什么?请帮助我任何一个。谢谢。
c# - 在 Java 应用程序中使用 WPF 库时出现线程问题?
我一直在尝试将现有的 C# WPF API 与 Java 应用程序连接起来。
到目前为止,我已经成功地使用jni4net生成代理来连接 Java 和 .NET 代码。
此集成在显示 WPF UI 时产生了 STA 线程问题:
这是通过使用以下模式来克服使用 ShowDialog 加载 WPF UI 的:
但是,现在,我在使用 WPF UI 时遇到类似于以下的异常,鼠标单击或按键可以触发以下情况(此示例来自鼠标单击):
我目前不确定如何解决此问题并从堆栈跟踪中确定问题的原因。
非常感谢任何帮助/建议。
c# - System.IO.FileNotFoundException: myCSharpDemoCalc\work\MyCSharpDemoCalc.j4n.dll
jni4net 不生成 MyCSharpDemoCalc.j4n.dll。generateProxy 说它有,但文件没有被创建。因此,我得到 System.IO.FileNotFoundException。这是 jni4net 中的错误吗?我正在使用版本 0.8.6.0
D:\Temp\jni4net\samples\myCSharpDemoCalc\work>java -cp jni4net.j
-0.8.6.0.jar;MyCSharpDemoCalc.j4n.jar;。线程“主” System.IO.FileNotFoundException 中的 MyCalcUsageInJava 异常:
D:\Temp\jni4net\samples\myCSharpDemoCalc\work\MyCSharpDemoCalc.j4n.dll at net.sf.jni4net.Bridge.LoadAndRegisterAssemblyFromClassLoader(File assemblyFile, ClassLoader classLoader) at net .sf.jni4net.Bridge.LoadAndRegisterAssemblyFrom(File assemblyFile)
at net.sf.jni4net.__Bridge.LoadAndRegisterAssemblyFrom3(IntPtr __envp, JniLocalHandle __class, JniLocalHandle assemblyFile) at net.sf.jni4net.Bridge.LoadAndRegisterAssemblyFrom(Native Method) at MyCalcUsageInJava.main (MyCalcUsageInJava.java:11)
其他人有同样的问题吗?
c# - Java .NET 互操作性
我正在开发一个托管在 Parallel Plesk Panel (Windows) 上的 .NET 网站,我有一些用 Java 编写的类,使用它的 swing 和 JavaMail API,我想在我的网站中使用它们。我有两个选择 - jni4net 和 IKVM.net。只是想知道在性能和开发努力方面哪一种是高效便捷的方法?
java - jni4net - System.Runtime.Remoting.RemotingException
我正在尝试使用 Java / .NET 桥与服务器进行通信。这座桥是用jni4net建造的,似乎可以工作(到目前为止)。
我真的不知道问题可能是什么。有没有人遇到过这样的问题?
这是完整的异常堆栈跟踪:
java - 从 Eclipse 中的库项目中导出 jars
我有一个引用库项目的动态 Web 项目。当我导出 .war 文件并尝试调用我得到的方法时:
org.jboss.resteasy.spi.UnhandledException:java.lang.NoClassDefFoundError:net/sf/jni4net/Bridge
当我查看我的 .war 文件时,没有导出库项目的 jar。我怎样才能做到这一点?
谢谢。
jni4net - 使用 xml 配置运行 JNI4NET proxygen 时出现问题
我正在尝试生成代理。我从示例文件夹中复制了一个示例 xml 并对其进行了修改。
操作系统:Windows 8.1
Java 版本:1.7.0_45(32 或 64 位)
JNI4NET 版本:0.8.6
命令行:proxygen config.xml
配置.xml:
我得到的错误:
可以请人帮忙吗...
谢谢, 安德烈亚斯