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

什里尼迪·纳拉辛汗

我需要在 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 Release (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);
    }

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

希望这有帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

需要在Visual Studio(C#)中使用DLL的帮助

来自分类Dev

我需要在Qt中使用CryptoPP DLL吗?

来自分类Dev

为什么我需要在C#和PostgreSQL中使用Npgsql引用列和表?

来自分类Dev

为什么我需要在C#和PostgreSQL中使用Npgsql引用列和表?

来自分类Dev

我需要在C ++中取模

来自分类Dev

为什么我需要在 C 中用 * 定义对指针的引用?

来自分类Dev

需要在Java / Play Framework中创建用户评论的示例

来自分类Dev

需要在Java中存储带数字附加的userid

来自分类Dev

我需要在Java目录中安装Glassfish吗?

来自分类Dev

我需要在java中拆分字符串吗?

来自分类Dev

我需要在每个dll中启用ReadyToRun来发布exe文件吗?

来自分类Dev

在C ++ REST SDK中需要在哪里调用CoInitialize?

来自分类Dev

需要在代码块中启用C ++ 11

来自分类Dev

需要在C#中更新图像文件

来自分类Dev

需要在C ++中使用char **代替std :: string *

来自分类Dev

从Java访问DLL中的C#方法

来自分类Dev

使用从Java用C#编写的DLL

来自分类Dev

使用从Java用C#编写的DLL

来自分类Dev

在C ++程序中使用Java DLL

来自分类Dev

为什么我需要在 C 中指定引用和指针而不是普通变量

来自分类Dev

从Java调用c ++ dll

来自分类Dev

需要在Java应用程序中从AS400获取对象的创建日期和时间

来自分类Dev

为什么需要在 Java 的 while 循环中使用“break”和“continue”语句?

来自分类Dev

需要在C#中按键和值相交2个字典

来自分类Dev

为什么我需要在C#中覆盖.Equals和GetHashCode

来自分类Dev

需要在C#中按键和值相交2个字典

来自分类Dev

我需要在Objective-C中使用哪个版本的LLVM和XCode?

来自分类Dev

尝试在Java中使用偏好设置,但需要管理员权限(需要在Windows和MAC上工作)

来自分类Dev

尝试在Java中使用偏好设置,但需要管理员权限(需要在Windows和MAC上工作)

Related 相关文章

  1. 1

    需要在Visual Studio(C#)中使用DLL的帮助

  2. 2

    我需要在Qt中使用CryptoPP DLL吗?

  3. 3

    为什么我需要在C#和PostgreSQL中使用Npgsql引用列和表?

  4. 4

    为什么我需要在C#和PostgreSQL中使用Npgsql引用列和表?

  5. 5

    我需要在C ++中取模

  6. 6

    为什么我需要在 C 中用 * 定义对指针的引用?

  7. 7

    需要在Java / Play Framework中创建用户评论的示例

  8. 8

    需要在Java中存储带数字附加的userid

  9. 9

    我需要在Java目录中安装Glassfish吗?

  10. 10

    我需要在java中拆分字符串吗?

  11. 11

    我需要在每个dll中启用ReadyToRun来发布exe文件吗?

  12. 12

    在C ++ REST SDK中需要在哪里调用CoInitialize?

  13. 13

    需要在代码块中启用C ++ 11

  14. 14

    需要在C#中更新图像文件

  15. 15

    需要在C ++中使用char **代替std :: string *

  16. 16

    从Java访问DLL中的C#方法

  17. 17

    使用从Java用C#编写的DLL

  18. 18

    使用从Java用C#编写的DLL

  19. 19

    在C ++程序中使用Java DLL

  20. 20

    为什么我需要在 C 中指定引用和指针而不是普通变量

  21. 21

    从Java调用c ++ dll

  22. 22

    需要在Java应用程序中从AS400获取对象的创建日期和时间

  23. 23

    为什么需要在 Java 的 while 循环中使用“break”和“continue”语句?

  24. 24

    需要在C#中按键和值相交2个字典

  25. 25

    为什么我需要在C#中覆盖.Equals和GetHashCode

  26. 26

    需要在C#中按键和值相交2个字典

  27. 27

    我需要在Objective-C中使用哪个版本的LLVM和XCode?

  28. 28

    尝试在Java中使用偏好设置,但需要管理员权限(需要在Windows和MAC上工作)

  29. 29

    尝试在Java中使用偏好设置,但需要管理员权限(需要在Windows和MAC上工作)

热门标签

归档