【发布时间】:2019-09-10 02:58:03
【问题描述】:
我有一个读取和处理 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 文件的库。有什么建议吗?
【问题讨论】: