I'm trying to open/read an existing HDF5 file using the Java library. I
have the "jhdf.dll" and "jhdf5.dll" files on the system path. The code I
have in my main method is taken from the HDF samples, and looks like this:
H5File h5file = new
H5File("C:\\dev\\workspaces\\hdf5\\hdf5\\src\\main\\java\\com\\vaisala\\hdf5\\hdf5_test.h5",
HDF5Constants.H5F_ACC_RDONLY);
try
{
// open file and retrieve the file structure
h5file.open();
}
catch (Exception ex)
{
System.out.println(ex);
}
When I run it, it throws the following exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError:
ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I
at ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(Native Method)
at ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(H5.java:4588)
at ncsa.hdf.object.h5.H5File.depth_first(H5File.java:1617)
at ncsa.hdf.object.h5.H5File.loadTree(H5File.java:1554)
at ncsa.hdf.object.h5.H5File.open(H5File.java:1520)
at ncsa.hdf.object.h5.H5File.open(H5File.java:1464)
at ncsa.hdf.object.h5.H5File.open(H5File.java:825)
at com.vaisala.hdf5.TestH5File.main(TestH5File.java:24)
It may be the dependencies such as the hdf5 native libraries aren't being found by the path.
While debugging beforecalling H5File I put in code loading the jhdf5.dll by load instead of the production way loadLibrary:
..... //System.loadLibrary("jhdf5");
System.load("<full local path to lib>jhdf5.dll");
....
where <full local path to lib> is c:\NetBeansProjects\hdf5\lib\
If it can't find something, this development style will spit out what can't be found
···
On 05/14/2013 09:52 AM, Marko Kurm wrote:
I'm trying to open/read an existing HDF5 file using the Java library. I have the "jhdf.dll" and "jhdf5.dll" files on the system path. The code I have in my main method is taken from the HDF samples, and looks like this:
H5File h5file = new H5File("C:\\dev\\workspaces\\hdf5\\hdf5\\src\\main\\java\\com\\vaisala\\hdf5\\hdf5_test.h5", HDF5Constants.H5F_ACC_RDONLY);
try
{
// open file and retrieve the file structure
h5file.open();
}
catch (Exception ex)
{
System.out.println(ex);
}
When I run it, it throws the following exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError: ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I
at ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(Native Method)
at ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(H5.java:4588)
at ncsa.hdf.object.h5.H5File.depth_first(H5File.java:1617)
at ncsa.hdf.object.h5.H5File.loadTree(H5File.java:1554)
at ncsa.hdf.object.h5.H5File.open(H5File.java:1520)
at ncsa.hdf.object.h5.H5File.open(H5File.java:1464)
at ncsa.hdf.object.h5.H5File.open(H5File.java:825)
at com.vaisala.hdf5.TestH5File.main(TestH5File.java:24)
If you are running your application from your script, add the library to the command line, e.g.
java -Djava.library.path=%PATH_TO_THE_DLLS% ...
If you are running with eclipse, set VM argument, -Djava.library.path=%PATH_TO_THE_DLLS%
under run->Run Configurations->Arguments
···
On 5/14/2013 8:52 AM, Marko Kurm wrote:
I'm trying to open/read an existing HDF5 file using the Java library. I have the "jhdf.dll" and "jhdf5.dll" files on the system path. The code I have in my main method is taken from the HDF samples, and looks like this:
H5File h5file = new H5File("C:\\dev\\workspaces\\hdf5\\hdf5\\src\\main\\java\\com\\vaisala\\hdf5\\hdf5_test.h5", HDF5Constants.H5F_ACC_RDONLY);
try
{
// open file and retrieve the file structure
h5file.open();
}
catch (Exception ex)
{
System.out.println(ex);
}
When I run it, it throws the following exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError: ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I
at ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(Native Method)
at ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(H5.java:4588)
at ncsa.hdf.object.h5.H5File.depth_first(H5File.java:1617)
at ncsa.hdf.object.h5.H5File.loadTree(H5File.java:1554)
at ncsa.hdf.object.h5.H5File.open(H5File.java:1520)
at ncsa.hdf.object.h5.H5File.open(H5File.java:1464)
at ncsa.hdf.object.h5.H5File.open(H5File.java:825)
at com.vaisala.hdf5.TestH5File.main(TestH5File.java:24)
I'm trying to open/read an existing HDF5 file using the Java library. I have the "jhdf.dll" and "jhdf5.dll" files on the system path. The code I have in my main method is taken from the HDF samples, and looks like this:
H5File h5file = new H5File("C:\\dev\\workspaces\\hdf5\\hdf5\\src\\main\\java\\com\\vaisala\\hdf5\\hdf5_test.h5", HDF5Constants.H5F_ACC_RDONLY);
try
{
// open file and retrieve the file structure
h5file.open();
}
catch (Exception ex)
{
System.out.println(ex);
}
When I run it, it throws the following exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError: ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I
at ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(Native Method)
at ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(H5.java:4588)
at ncsa.hdf.object.h5.H5File.depth_first(H5File.java:1617)
at ncsa.hdf.object.h5.H5File.loadTree(H5File.java:1554)
at ncsa.hdf.object.h5.H5File.open(H5File.java:1520)
at ncsa.hdf.object.h5.H5File.open(H5File.java:1464)
at ncsa.hdf.object.h5.H5File.open(H5File.java:825)
at com.vaisala.hdf5.TestH5File.main(TestH5File.java:24)
Thanks for the help guys!I have the DLL files in the system path + I added
the following arguments to the run
configuration:-Djava.library.path=C:/dev/hdf5/hdf-java/lib/win-Dncsa.hdf.hdf5lib.H5.hdf5lib=C:/dev/hdf5/hdf-java/lib/win/jhdf5.dlland
inside C:/dev/hdf5/hdf-java/lib/win folder, I have two files: jhdf5.dll &
jhdf.dll. At first I had the problem that the DLL-s where not on the path,
but in that case, it throws a "java.lang.UnsatisfiedLinkError: no jhdf5 in
java.library.path" exception so this is not the case.Anyway, I still get the
same error message: Exception in thread "main"
java.lang.UnsatisfiedLinkError:
ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)II
took a look inside the DLL-s (with DLL Export Viewer
<http://www.nirsoft.net/utils/dll_export_viewer.html> ) to see what
functions they export and I didn't see the "H5Gget_obj_info_all" function
there. Maybe I'm missing some DLL? I only have the two that came with
downloading this file
<http://www.hdfgroup.org/ftp/HDF5/hdf-java/bin/win64/hdf-java-2.9-bin.tar>
What kind of HDF DLL-s do you have on your paths?
and inside C:/dev/hdf5/hdf-java/lib/win folder, I have two files: jhdf5.dll
& jhdf.dll. At first I had the problem that the DLL-s where not on the
path, but in that case, it throws a "java.lang.UnsatisfiedLinkError: no
jhdf5 in java.library.path" exception so this is not the case. Anyway, I
still get the same error message: Exception in thread "main"
java.lang.UnsatisfiedLinkError:
ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/
String;[Ljava/lang/String;[I[JI)I
Thanks for the help guys! I have the DLL files in the system path + I
added the following arguments to the run configuration:
-Djava.library.path=C:/dev/hdf5/hdf-java/lib/win
-Dncsa.hdf.hdf5lib.H5.hdf5lib=C:/dev/hdf5/hdf-java/lib/win/jhdf5.dll and
inside C:/dev/hdf5/hdf-java/lib/win folder, I have two files: jhdf5.dll &
jhdf.dll. At first I had the problem that the DLL-s where not on the path,
but in that case, it throws a "java.lang.UnsatisfiedLinkError: no jhdf5 in
java.library.path" exception so this is not the case. Anyway, I still get
the same error message: Exception in thread "main"
java.lang.UnsatisfiedLinkError:
ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I
I took a look inside the DLL-s (with DLL Export Viewer<http://www.nirsoft.net/utils/dll_export_viewer.html>)
to see what functions they export and I didn't see the
"H5Gget_obj_info_all" function there. Maybe I'm missing some DLL? I only
have the two that came with downloading this file<http://www.hdfgroup.org/ftp/HDF5/hdf-java/bin/win64/hdf-java-2.9-bin.tar>What kind of HDF DLL-s do you have on your paths?
------------------------------
View this message in context: Re: Reading an HDF5 file in Java<http://hdf-forum.184993.n3.nabble.com/Reading-an-HDF5-file-in-Java-tp4026180p4026189.html>
Sent from the hdf-forum mailing list archive<http://hdf-forum.184993.n3.nabble.com/>at Nabble.com.
Peter is referring to the HDF5 libs; not just the java native interface ones (e.g. jhdf5)
The ones of HDF5 itself as in hdf5.dll and hdf5_hl.dll etc. jhdf5.dll & jhdf.dll are only the native glue
System.load("<full path to libs</ jhdf.dll");
will show what is needed clearly
···
On 05/16/2013 03:10 AM, Marko Kurm wrote:
Sorry, the formatting didn't work. Here it is again:
I have the DLL files in the system path + I added the following arguments to the run configuration:
and inside C:/dev/hdf5/hdf-java/lib/win folder, I have two files: jhdf5.dll & jhdf.dll. At first I had the problem that the DLL-s where not on the path, but in that case, it throws a "java.lang.UnsatisfiedLinkError: no jhdf5 in java.library.path" exception so this is not the case. Anyway, I still get the same error message: Exception in thread "main" java.lang.UnsatisfiedLinkError: ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I
Thanks for the help guys! I have the DLL files in the system path
+ I added the following arguments to the run configuration:
-Djava.library.path=C:/dev/hdf5/hdf-java/lib/win
-Dncsa.hdf.hdf5lib.H5.hdf5lib=C:/dev/hdf5/hdf-java/lib/win/jhdf5.dll
and inside C:/dev/hdf5/hdf-java/lib/win folder, I have two files:
jhdf5.dll & jhdf.dll. At first I had the problem that the DLL-s
where not on the path, but in that case, it throws a
"java.lang.UnsatisfiedLinkError: no jhdf5 in java.library.path"
exception so this is not the case. Anyway, I still get the same
error message: Exception in thread "main"
java.lang.UnsatisfiedLinkError:
ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I
I took a look inside the DLL-s (with DLL Export Viewer
<http://www.nirsoft.net/utils/dll_export_viewer.html>) to see what
functions they export and I didn't see the "H5Gget_obj_info_all"
function there. Maybe I'm missing some DLL? I only have the two
that came with downloading this file
<http://www.hdfgroup.org/ftp/HDF5/hdf-java/bin/win64/hdf-java-2.9-bin.tar>
What kind of HDF DLL-s do you have on your paths?
------------------------------------------------------------------------
View this message in context: Re: Reading an HDF5 file in Java
<http://hdf-forum.184993.n3.nabble.com/Reading-an-HDF5-file-in-Java-tp4026180p4026189.html>
Sent from the hdf-forum mailing list archive
<http://hdf-forum.184993.n3.nabble.com/> at Nabble.com.
Ok, didn't realize that. Thanks! Now I downloaded the actual HDF5 library and
installed it. I added the following to the VM arguments:
-Djava.library.path="C:\Program Files\HDF_Group\HDF5\1.8.11\bin" ( this is
where the DLLs are).
And at least this code runs through without exceptions:
So it seems that the libraries are loaded at least. But when I run the
following, I still get the same exception (java.lang.UnsatisfiedLinkError:
ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I):
H5File h5file = new
H5File("C:\\dev\\workspaces\\hdf5\\hdf5\\src\\main\\java\\com\\vaisala\\hdf5\\hdf5_test.h5",
HDF5Constants.H5F_ACC_RDONLY);
h5file.open();
h5file.close();
Ok, didn't realize that. Thanks! Now I downloaded the actual HDF5 library and
installed it. I added the following to the VM arguments:
-Djava.library.path="C:\Program Files\HDF_Group\HDF5\1.8.11\bin" ( this is
where the DLLs are).
And at least this code runs through without exceptions:
So it seems that the libraries are loaded at least. But when I run the
following, I still get the same exception (java.lang.UnsatisfiedLinkError:
ncsa.hdf.hdf5lib.H5.H5Gget_obj_info_all(ILjava/lang/String;[Ljava/lang/String;[I[JI)I):
H5File h5file = new
H5File("C:\\dev\\workspaces\\hdf5\\hdf5\\src\\main\\java\\com\\vaisala\\hdf5\\hdf5_test.h5",
HDF5Constants.H5F_ACC_RDONLY);
h5file.open();
h5file.close();