问题标签 [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 - 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)
任何帮助请!
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#中
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?
java - proxygen 抛出 System.NullReferenceException
我想在我们的 java 应用程序中使用一个 dll 文件,我正在使用 jni4net,当我尝试为我们的 Dll 创建代理时它抛出
jni4net - 具有不同 JDK 的 Jni4Net
我正在为 Java 类构建 C# 代理(使用 proxygen.xml),我的问题是:可以使用不同的 JDKJni4Net
编译.java
文件而不是保存在 JAVA_HOME 变量中吗?还是我需要临时更改它?
谢谢
java - 如何在 mono/linux 上从 Java 调用 .Net dll(函数)
正如题主所说,这可能吗?我知道 jni4net 但它在 Windows 上。
这是我得到的错误的摘录:
java - 使用 64 位操作系统的 jni4net 从 java 调用 C# 时出错
我正在尝试使用 jni4net 从 java 调用 C# 函数,该函数在 windows 32 位操作系统中运行良好,但是当我尝试从 64 位操作系统加载相同的 C# dll 时,我遇到了这个错误
这是我的代码
我可能做错了什么
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 从样本中被恶意窃取并更改。
有什么帮助吗?谢谢。
java - CLR 库依赖路径,Java 宿主
我正在用 C# 和 Java 编写一种设备接口。C# 与本机设备库接口,并运行一个长期存在的工作线程来轮询数据。它进行一些处理并将其数据存储在内部队列中。
Java 部分启动工作线程并轮询其内部队列。该线程与主 JVM 线程是分开的。
问题是当我加载 C# 库时,它找不到设备库依赖项。它尝试查看系统目录和 JVM 目录(Bridge.LoadAndRegisterAssemblyFrom 方法只是调用系统程序集加载器)。我求助于从 Java 主机手动打开和加载该依赖项。
有没有办法设置CLR库路径。我对 .Net 不太熟悉,所以可能有一种通用的方式,而不仅仅是 jni4net。
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)。
我怎样才能做到这一点 ?
谢谢大家。