Azure++ 2023-03-02 16:11 采纳率: 33.3%
浏览 22
已结题

java调用C#的dll

提个问题,我用java调用C#的dll,用的是jna,可是这个东西要用到jacob-1.18-x64.dll并且放到C:\Windows\System32中,可以我怎么打包发布到Linux上呢?

img

img

img

  • 写回答

2条回答 默认 最新

  • 编程漫步者 2023-03-02 16:23
    关注

    如果你要在Linux上使用Java调用C#的DLL,需要使用Mono来运行C#程序,而不是Windows的.NET Framework。在这种情况下,你需要将jacob-1.18-x64.dll替换为Linux上的对应文件,并将其放在Linux的库搜索路径中,以便可以从Java中访问它。

    步骤如下:

    1. 将jacob-1.18-x64.dll替换为Linux上的对应文件,例如libjacob.so或libjacob.dylib等。

    2. 将替换后的文件复制到Linux的库搜索路径中。你可以将其复制到/usr/lib或/lib目录下,或者在该目录中创建一个新目录并将其添加到LD_LIBRARY_PATH环境变量中。

    3. 修改Java代码中加载JNA库的代码,以使用Linux上的库文件路径。
      例如,假设你已经将libjacob.so复制到了/usr/lib目录下,可以使用以下代码来加载它:

    System.setProperty("jna.library.path", "/usr/lib");
    

    这样,JNA就会在指定的路径中查找libjacob.so文件,并将其加载到Java中,从而可以使用该DLL提供的函数。

    需要注意的是,在Linux上使用Java调用C#的DLL可能会面临一些其他的问题,例如平台差异、C#程序的依赖项等等。因此,建议在Linux上测试和调试C#程序,确保它可以在该平台上正确运行,然后再将其集成到Java中。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月9日
  • 创建了问题 3月2日

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化