当前位置: 首页 > 知识库问答 >
问题:

如何防止runnable JAR中出现“java.library.path中没有jhdf5”错误

寇和璧
2023-03-14

我有一个Java程序,可以读取和处理HDF5文件。在Eclipse(windows OS)上运行时,我遇到了以下错误,必须添加一个运行配置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)

基于这篇文章,我看到了两个可能的选择:创建一个shell脚本或应用程序包来合并VM参数。

然而,我很好奇有没有更简单的方法来识别可运行JAR文件的库。有什么建议吗?

共有1个答案

王凯旋
2023-03-14

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

这是一个相当早期的阶段,但应该支持从大多数HDF5文件中读取数据,如果它不工作,就会出现问题。

免责声明:我是jhdf的作者,所以可能有偏见。

 类似资料:
  • 问题内容: 我正在通过Netbeans使用LWJGL库用Java编写基本游戏。 我用lwjgl,lwjgl_util和jinput .jar创建了一个库,并在项目属性的“运行”类别中添加了-Djava.library.path = C:\ LWJGL \ native \ windows。 当我在Netbeans中运行文件时,它可以完美运行,没有任何问题。但是,当我通过双击文件运行.jar时,什么

  • 我想签名我的apk,所以我执行了以下命令: java-jar signapk.jar platform.x509.pem platform.pk8 app-debug.apk~/desktop/test.apk 但我得到了以下错误: (openjdk版本“1.8.0_141”openjdk运行时环境(build 1.8.0_141-8U141-B15-3~14.04-B15)openjdk 64位

  • 问题内容: 当我尝试运行Java应用程序时,出现以下错误: 我没有一个文件在我的电脑上,但我在。 是正确指定的,所以我认为问题在于应用程序正在搜索错误的版本(9而不是10)。 Oracle和Java Builder都是新安装的,所以问题可能出在项目首选项上吗?您对如何搜索指定错误版本的地方有任何想法吗? 问题答案: 您缺少Java CLASSPATH中的文件。 您需要将OCI jar添加到您的类路

  • 问题内容: 运行代码时出现此错误。 我已将jar( sapjco-3.0.jar )添加到文件夹,并在项目中设置了路径。 谢谢。 问题答案: 您缺少sap java连接器的本机实现。sapjco由用于Java绑定的.jar和用于平台特定绑定的本机库(.so文件)组成。 您需要在树液服务市场上有一个帐户才能访问它。如果您有一个,请访问http://service.sap.com,然后转到软件下载/安

  • 我有一个连接到SQLServer2008实例的JavaEEWeb应用程序。我在连接和检索我的所有表时没有任何问题,除了其中一个表。Tomcat日志中的错误是: 警告:无法加载sqljdbc_auth.dll原因:-java.library.pathsqljdbc_auth

  • 在我将所有本机库链接到每个引用库并按照http://ninjacave.com/lwjglwitheclipse的说明操作之后,该错误仍然存在