gpt4 book ai didi

java - 需要在Java中引用和使用C# dll

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:40 26 4
gpt4 key购买 nike

我需要在java中引用.Net dll。我也使用了 jni4net 库。我已按照以下视频中提到的步骤进行操作:

https://www.youtube.com/watch?time_continue=351&v=8OoSK_RWUe4

我已遵循引用 jni4net 库所需的所有步骤,但出现以下运行时异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: orionforpython.DynamicOrion.__ctorDynamicOrion0(Lnet/sf/jni4net/inj/IClrProxy;)V
at orionforpython.DynamicOrion.__ctorDynamicOrion0(Native Method)
at orionforpython.DynamicOrion.<init>(DynamicOrion.java:25)
at com.orion.OrionForJava.main(OrionForJava.java:16)

完成所有步骤后,这是我的代码:

    package com.orion;
import net.sf.jni4net.Bridge;
import orionforpython.*;
import java.io.*;
class OrionForJava {
public static void main(String[] args) throws IOException {
Bridge.setVerbose(true);
Bridge.init();
File proxyAssemblyFile=new File("OrionForPython.dll");
Bridge.LoadAndRegisterAssemblyFrom(proxyAssemblyFile);
DynamicOrion orion=new DynamicOrion();
String res=orion.ReqLogin("user", "pwd", "");
System.out.print(res);
}}

我尝试使用 NetBeans 8.1 IDE 执行相同的操作,但没有成功。我正在使用 jni4net-0.8.8.0 版本和 Eclipse IDE for Java Developers版本:Oxygen.3 发布 (4.7.3)任何帮助都会有帮助!

最佳答案

我使用 jni4net 库从 java 调用 c# dll,它工作正常。我使用了稍微不同的方法来初始化 jni4net。

try {
Bridge.setVerbose(true);
Bridge.init(new File("Full path to jni4net.n.w64.v40-0.8.8.0.dll"));
// where dlls to load is jni4net.n.w64.v40-0.8.8.0.dll,jni4net.n-0.8.8.0.dll,MyOriginalNETDll.dll,MyOriginalNETDll.j4n.dll (after proxygen processing)
for (String str : dllsToLoad) {
File dll = new File(rutaDlls + str);
Bridge.LoadAndRegisterAssemblyFrom(dll);
}
} catch (IOException e) {
LOG.error("Error jniBrige.", e);
}

我需要使用 dll 的完整路径 c:... 才能使其工作。我还必须注意用于创建程序集的 .net 框架版本(在我的例子中需要使用 4.0 和 java 版本 8)

希望这有帮助

关于java - 需要在Java中引用和使用C# dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49726372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com