问题标签 [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.

0 投票
1 回答
2048 浏览

java - C#中的JNI4Net java,JNIException

我有一个名为 jniBridge.Calculator 的简单 Java 类,它有一个简单的方法 Add(int a, int b)。使用 Eclipse 构建项目后,我将项目导出为 JAR 文件。

然后我在 JAR 文件上调用了 proxygen,这产生了一个名为 clr 的文件夹和另一个名为 jvm 的文件夹,其中分别包含 C# 和 Java 代理。Proxygen 还创建了一个 build.cmd 和一个 .xml 文件。

之后我运行 build.cmd 它生成了一个 .DLL 和 .JAR 文件。

现在我想在 C# 中使用这些或任何东西,所以我将 .DLL 和 .JAR 文件复制到 .NET 项目文件夹中,并添加了对 .DLL 文件的引用并将 .JAR 文件设置为始终复制到输出文件夹,所以它与 .EXE 文件一起存在。我还添加了对 Jni4Net 主库文件 jni4net.n-0.8.8.0.dll 的引用,并将其主 JAR 文件 jni4net.j-0.8.8.0.jar 复制到同一目录。添加到转储中,我还添加了我开始使用的原始 JAR 文件。

在 C# Program.cs 中,我执行以下操作:



但是,最后一次调用失败并出现以下异常:

net.sf.jni4net.jni.JNIException HResult=-2146233088 消息=无法从 classLoader sun.misc.Launcher$AppClassLoader@20eb607d 为 democalc.DemoCalc 加载 java 类 Source=jni4net.n-0.8.8.0 StackTrace:在 net. sf.jni4net.utils.Registry.LoadClass(String name, ClassLoader classLoader, JNIEnv env) net.sf.jni4net.utils.Registry.RegisterClass(RegistryRecord record, ClassLoader classLoader, JNIEnv env)

任何帮助请!

0 投票
1 回答
269 浏览

list - c#中的jni4net--为什么没有java.util.List list= new java.util.ArrayList();

java.util.List 列表=新 java.util.ArrayList(); // C#中的错误

List list= new ArrayList();// java

仅:Hashtable hashtable=new Hashtable(); //确定在c#中

0 投票
0 回答
230 浏览

java - 如何在 Java 中启用/加载 App.config

我创建了一个需要从 java 调用的 C# 项目(dll)。C# 项目具有使用 .net 的 c2.0 编译的依赖项 (dll)。正在使用的机器已安装 .net 4.5。我正在使用 .net 3.0 编译 C# 项目并生成 dll。我正在使用 jni4net 在 java 中调用 C# dll(函数),但我不断收到此错误。“System.IO.FileLoadException:混合模式程序集是针对运行时版本‘v2.0.50727’构建的,如果没有额外的配置信息,则无法在 4.0 运行时中加载。”

这是我的java代码。

我的问题是我可以从 java 加载 App.config 还是在 windows 或 java 中有办法启用程序选择 .net 3.5?

0 投票
1 回答
909 浏览

java - proxygen 抛出 System.NullReferenceException

我想在我们的 java 应用程序中使用一个 dll 文件,我正在使用 jni4net,当我尝试为我们的 Dll 创建代理时它抛出

0 投票
1 回答
292 浏览

jni4net - 具有不同 JDK 的 Jni4Net

我正在为 Java 类构建 C# 代理(使用 proxygen.xml),我的问题是:可以使用不同的 JDKJni4Net编译.java文件而不是保存在 JAVA_HOME 变量中吗?还是我需要临时更改它?

谢谢

0 投票
2 回答
912 浏览

java - 如何在 mono/linux 上从 Java 调用 .Net dll(函数)

正如题主所说,这可能吗?我知道 jni4net 但它在 Windows 上。

这是我得到的错误的摘录:

0 投票
1 回答
945 浏览

java - 使用 64 位操作系统的 jni4net 从 java 调用 C# 时出错

我正在尝试使用 jni4net 从 java 调用 C# 函数,该函数在 windows 32 位操作系统中运行良好,但是当我尝试从 64 位操作系统加载相同的 C# dll 时,我遇到了这个错误

这是我的代码

我可能做错了什么

0 投票
0 回答
490 浏览

jni4net - ProxyGen 不生成“build.cmd”文件

我正在尝试让 Jasper Reports 从我在 VB.Net 中的应用程序中工作。因此,在考虑了许多选项之后,我决定在 java 中创建一个小程序来启动它,并使用 JNI4NET 在我的 .Net 项目中引用它。

我不知道我是否做错了什么,但是,当我启动 proxygen 工具时,它给了我一个“OK/Completed”消息,它创建了两个目录,java 和 csharp,两个文件我认为是两个代理。

当我按照 Wiki 说明(https://github.com/jni4net/jni4net/wiki/Generating-Proxies)并说它应该是一个“build.cmd”文件来创建将被包含的 dll 时,问题就出现了后来在我的项目中。我没有那个文件。我错过了什么?

我使用命令行启动了代理,.\proxygen.exe ProxyGenJasperTest.xml即 xml:

XML 从样本中被恶意窃取并更改。

有什么帮助吗?谢谢。

0 投票
0 回答
63 浏览

java - CLR 库依赖路径,Java 宿主

我正在用 C# 和 Java 编写一种设备接口。C# 与本机设备库接口,并运行一个长期存在的工作线程来轮询数据。它进行一些处理并将其数据存储在内部队列中。

Java 部分启动工作线程并轮询其内部队列。该线程与主 JVM 线程是分开的。

问题是当我加载 C# 库时,它找不到设备库依赖项。它尝试查看系统目录和 JVM 目录(Bridge.LoadAndRegisterAssemblyFrom 方法只是调用系统程序集加载器)。我求助于从 Java 主机手动打开和加载该依赖项。

有没有办法设置CLR库路径。我对 .Net 不太熟悉,所以可能有一种通用的方式,而不仅仅是 jni4net。

0 投票
0 回答
362 浏览

spring - jni4net 、 dot net dll 和 Spring Boot

我正在尝试在我的 java web spring boot 项目中使用 Windows dor net Dll。

我有名为 operA.dll 的 dot net dll,这个 dll(operA.dll)使用其他两个 dll(cmdB.dll 和 cmdC.dll)

现在我使用 jni4net 加载 operA.dll ,我要加载的代码是:

这段代码工作正常。

好吧,当我尝试使用任何操作时加载我的 dll (operA.dll) 后,我收到
一个异常 (java.lang.UnsatisfiedLinkError) 。

为避免此异常,我尝试使用:

System.setProperty("java.library.path", "c:\libs"); 和

mvn spring-boot:run -Djava.library.path=c:\libs

并将我所有的 dll 复制到这个 windows 目录 (c:\libs) 中,但即使是儿子,我也会继续收到 UnsatisfiedLinkError 异常。

为了测试我的代码,我开发了一个简单的 jar 并配置我的库路径以使用 Wrapper Community Edition ( http://wrapper.tanukisoftware.com ) 运行,我的所有代码都运行良好。

我的问题是,我需要在 tomcat 或 jetty 或 jboss 中运行这个项目(使用 dot net dll)。

我怎样才能做到这一点 ?

谢谢大家。