gpt4 book ai didi

java - 如何防止可运行 JAR 中出现 "No jhdf5 in java.library.path"错误

转载 作者:行者123 更新时间:2023-12-02 06:29:13 26 4
gpt4 key购买 nike

我有一个读取和处理 HDF5 文件的 Java 程序。当我在 Eclipse(Windows 操作系统)上运行它时,出现以下错误,并且必须添加运行配置 VM 参数(-Dncsa.hdf.hdf5lib.H5.hdf5lib=\jhdf5.dll)才能添加库并正常运行。现在我导出一个可运行的 Jar 文件,我再次收到错误,可能是因为它没有继承 VM 参数。

java.lang.UnsatisfiedLinkError: no jhdf5 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at ncsa.hdf.hdf5lib.H5.loadH5Lib(H5.java:347)
at ncsa.hdf.hdf5lib.H5.<clinit>(H5.java:274)
at ncsa.hdf.hdf5lib.HDF5Constants.<clinit>(HDF5Constants.java:28)
at ncsa.hdf.object.h5.H5File.<init>(H5File.java:99)
at ncsa.hdf.object.h5.H5File.<init>(H5File.java:132)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at ncsa.hdf.object.FileFormat.<clinit>(FileFormat.java:229)
at hdf5Tool.HDF5Interface.readNodeStructureH5(HDF5Interface.java:73)
at wizardPages.DREAMWizard$STORMData$1.run(DREAMWizard.java:340)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

基于this post ,我看到两个可能的选择是创建 shell 脚本或应用程序包来合并 VM 参数。

但是,我很好奇是否有一种更简单的方法来识别可运行 JAR 文件的库。有什么建议吗?

最佳答案

不确定您是否有特定需求,但也许可以查看jhdf.io它是一个纯 Java HDF5 库,因此不需要加载 native 库。添加到具有标准依赖项的 Maven 或 Gradle 项目应该很简单。

这还处于早期阶段,但应该支持从大多数 HDF5 文件中读取数据,如果它不起作用,请提出问题。

免责声明:我是 jhdf 的作者,因此可能存在偏见。

关于java - 如何防止可运行 JAR 中出现 "No jhdf5 in java.library.path"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55768603/

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