代码之家  ›  专栏  ›  技术社区  ›  Elijah

你知道有什么JNI包装工具包或库可以包装普通的Linux OS API吗?[关闭]

  •  4
  • Elijah  · 技术社区  · 17 年前

    我正在寻找一个库或工具包(所以我不必编写它),它允许我在Linux中执行如下常见操作:

    • 获取用户名的uid。
    • 获取用户/组成员身份信息。
    • 获取有关磁盘驱动器上可用空间的信息。
    • 任何其他可能有用的API调用,它们在Java中通常不可用,因为它们破坏了可移植性。

    有人有什么想法吗?

    2 回复  |  直到 17 年前
        1
  •  4
  •   unwind    17 年前

    POSIX for Java 听起来是个不错的开始,至少。请记住,您列出的大多数内容不是“Linux”,它们只是普通的旧POSIX。

        2
  •  5
  •   Thilo    17 年前

    不是任何特定库的包装,而是 JNA (Java Native Access) “提供Java程序轻松访问本地共享库(Windows上的DLL),而无需编写任何Java代码”

    不需要JNI或本机代码。此功能与Windows的平台/调用和Python的CTypes相当。运行时访问是动态的,不生成代码。

    JNA允许您使用自然Java方法调用直接调用本机函数。Java调用看起来就像在本机代码中那样。大多数调用不需要特殊的处理或配置;不需要样板文件或生成的代码。

    JNA库使用一个小型的本机库存根来动态调用本机代码。开发人员使用Java接口来描述目标本机库中的函数和结构。这使得很容易利用本机平台功能,而不会产生为多个平台配置和构建JNI代码的高开销。

    使用JNA,您应该能够直接调用LinuxAPI(与从C调用相同)。

    推荐文章