java - 从 Java 获取 native 动态库文件扩展名

标签 java dll cross-platform shared-libraries native-code

在Java中,有没有办法查询当前平台的动态库文件扩展名仅使用JDK或javax库?例如,定义的系统属性?

作为次要替代方案,是否有第三方 Java 库可以执行此操作?

作为第三种替代方案,问题是否如此微不足道,我可以轻松地推出自己的解决方案(例如 Windows 上的 .dll,其他地方的 .so)?

最佳答案

您或许可以使用以下 API 获得您正在寻找的内容:

System.mapLibraryName("your_library");

在 Linux 上,返回值为“libyour_library.so”,在 Windows 上,返回值为“your_library.dll”。因此,如果您只对扩展感兴趣,您可以执行以下操作:

final String libname = System.mapLibraryName("test");
final String libext = libname.substring(libname.lastIndexOf('.')+1);

关于java - 从 Java 获取 native 动态库文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25064959/

相关文章:

c# - 从托管代码传递到 native 代码时结构字段值无效

c++ - C++ MSVC dll编译错误,缺少类型说明符和重新定义

c - 为什么位字节顺序是位域中的一个问题?

mobile - Codenameone,英特尔的多操作系统引擎还是甲骨文的 MAF?

java - 为 Java 应用程序创建启动屏幕的最佳方法?

java - 如何修改类设计以使其线程安全

java - 为用户和用户组提供安全访问的 Web 应用程序

java - 为什么在 Spring Boot 中无法加载 Elasticsearch 节点会出现此错误?

java - Play框架-简单表达式的非法开始

c++ - 确保使用 Windows Phone 应用程序部署 C++ DLL 的正确方法