如何为 Windows 10 的 HDF5view 应用程序安装 java

how to install java for HDF5view app for Windows 10

我在 运行 HDF5view 时遇到以下错误,但找不到有关如何安装 Java 的说明,错误似乎表明缺少该说明。

PS C:\Users\Doug\AppData\Local\HDF_Group\HDFView> .\HDFView.exe
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:///C:/Users/Doug/AppData/Local/HDF_Group/HDFView/app/mods/slf4j-nop-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Doug/AppData/Local/HDF_Group/HDFView/app/extra/slf4j-simple-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Doug/AppData/Local/HDF_Group/HDFView/app/slf4j-nop-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.helpers.NOPLoggerFactory]
java.lang.UnsatisfiedLinkError: C:\Users\Doug\AppData\Local\HDF_Group\HDFView\runtime\bin\hdf5_java.dll: Can't find dependent libraries
        at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
        at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
        at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:310)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:280)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2440)
        at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:809)
        at java.base/java.lang.System.loadLibrary(System.java:1893)
        at jarhdf5@1.10.7/hdf.hdf5lib.H5.loadH5Lib(H5.java:315)
        at jarhdf5@1.10.7/hdf.hdf5lib.H5.<clinit>(H5.java:255)
        at jarhdf5@1.10.7/hdf.hdf5lib.HDF5Constants.<clinit>(HDF5Constants.java:29)
        at hdf.object.h5.H5File.<clinit>(H5File.java:115)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:377)
        at hdf.object.FileFormat.<clinit>(FileFormat.java:227)
        at hdf.view.HDFView.createToolbar(HDFView.java:1036)
        at hdf.view.HDFView.createMainWindow(HDFView.java:448)
        at hdf.view.HDFView.openMainWindow(HDFView.java:280)
        at hdf.view.HDFView.run(HDFView.java:2571)
        at swt/org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
        at swt/org.eclipse.swt.widgets.Display.syncExec(Display.java:4735)
        at hdf.view.HDFView.main(HDFView.java:2563)
Exception in thread "main" java.lang.UnsatisfiedLinkError: 'int hdf.hdf5lib.H5.H5dont_atexit()'
        at jarhdf5@1.10.7/hdf.hdf5lib.H5.H5dont_atexit(Native Method)
        at jarhdf5@1.10.7/hdf.hdf5lib.H5.loadH5Lib(H5.java:331)
        at jarhdf5@1.10.7/hdf.hdf5lib.H5.<clinit>(H5.java:255)
        at jarhdf5@1.10.7/hdf.hdf5lib.HDF5Constants.<clinit>(HDF5Constants.java:29)
        at hdf.object.h5.H5File.<clinit>(H5File.java:115)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:377)
        at hdf.object.FileFormat.<clinit>(FileFormat.java:227)
        at hdf.view.HDFView.createToolbar(HDFView.java:1036)
        at hdf.view.HDFView.createMainWindow(HDFView.java:448)
        at hdf.view.HDFView.openMainWindow(HDFView.java:280)
        at hdf.view.HDFView.run(HDFView.java:2571)
        at swt/org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
        at swt/org.eclipse.swt.widgets.Display.syncExec(Display.java:4735)
        at hdf.view.HDFView.main(HDFView.java:2563)
Failed to launch JVM
PS C:\Users\Doug\AppData\Local\HDF_Group\HDFView>

刚遇到同样的问题。您需要将 runtime\bin 文件夹添加到 Windows 路径变量。

  • 从 HDF Group 网站下载“HDFView-3.1.2-win10_64-vs16.zip”
  • 使用随附的“HDFView-3.1.2.exe”安装 HDF View 应用程序
  • 打开 Windows 开始菜单并输入“编辑系统环境”
  • Select 来自用户或系统变量的“路径”变量,然后单击“编辑”
  • 添加一个新条目并输入“C:\Users\[USERNAME]\AppData\Local\HDF_Group\HDFView\runtime\bin”
  • 重新启动 Windows,现在您可以从 Windows 开始菜单
  • 打开“HDF 视图”

我遇到了同样的问题。确保您安装了低于或高于 java 的版本

openjdk version "15.0.1" 2020-10-20
OpenJDK Runtime Environment (build 15.0.1+9-18)
OpenJDK 64-Bit Server VM (build 15.0.1+9-18, mixed mode)

如果这不起作用 运行 来自 HDFgroup 的脚本可以解决这个问题。可以在 https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfview-3.1.2/hdfview_scripts/

找到脚本

关于这个问题的官方解释可以在 HDFgroup 论坛上找到https://forum.hdfgroup.org/t/hdfview-3-1-2-issues-and-regressions/7887/3

希望这对您有所帮助 ;)

这是由于 3.1.2 版本的一个已知问题所致。它记录在 HDFGroup support pages。他们提供了一个正确设置 JVM 变量的 bat 脚本。下面我粘贴代码。

@ECHO OFF

setlocal enabledelayedexpansion
pushd %~dp0

rem Adjust the following variable to match your environment
set INSTALLDIR=%cd%
set PATH=%INSTALLDIR%\app;%PATH%
set JAVABIN=%INSTALLDIR%\runtime\bin

rem start "HDFView" "%JAVABIN%\javaw.exe" %JAVAOPTS% -Xmx1024M -Djava.library.path="%INSTALLDIR%\app" -Dhdfview.root="%INSTALLDIR%\app" -jar "%INSTALLDIR%\app\HDFView.jar" %*

rem Default invocation when using modules
start "HDFView" "%JAVABIN%\javaw.exe" %JAVAOPTS% -Xmx1024M -Djava.library.path="%INSTALLDIR%\app;%INSTALLDIR%\app\ext" -Dhdfview.root="%INSTALLDIR%\app" -cp "%INSTALLDIR%\app\*" hdf.view.HDFView %*

exit /b 0

您可以 download the original code 或将其复制到安装 HDFView 的同一文件夹中的 hdfview.bat 文件中,运行 从命令行将其复制,它应该可以工作。

还有一个 Linux bash script 可用,因为它产生了相同的错误。

如果上述解决方法都不起作用,请将安装目录由C:\Users\xxxx\AppData更改为C:\ProgramFiles\HDFView(不存在则创建)并完成安装。成功安装应在安装目录中显示以下文件夹以及 .exe:

  • 应用
  • 运行时间