我正在尝试将hdf.hdf5lib.H5导入到NetBeans中的maven项目中.它有这个作为进口线
import hdf.hdf5lib.H5;
Run Code Online (Sandbox Code Playgroud)
如下所示:https://support.hdfgroup.org/products/java/JNI3/jhi5/index.html
但是,它抛出了这个异常:
java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: Uncompilable source code - package hdf.hdf5lib does not exist
Run Code Online (Sandbox Code Playgroud)
NetBeans已经通过在输入行说"packadge不会激动"来警告我.所以我让它"在Maven存储库中搜索依赖项".它找到了一些东西,并将其添加到我的pom.xml中:
<dependency>
<groupId>org.hdfgroup</groupId>
<artifactId>hdf-java</artifactId>
<version>2.6.1</version>
<type>jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
不幸的是,它在导入行保持警告"packadge不会激活"和错误异常.看来这个对pom.xml的补充什么也没做.
我是所有这些的初学者,所以也许解决方案很明显,但我找不到它.这些问题可以追溯到2012年至2014年,但对我没有帮助:
http://hdf-forum.184993.n3.nabble.com/maven-repository-for-java-release-td4026938.html
http://hdf-forum.184993.n3.nabble.com/HDF-Java-on-Maven-td4025772.html
将hdf5 libs(java&c ++)添加到公共maven存储库?
如何在NetBeans的Windows Java项目中使用HDF5
正如ddarellis所建议的那样,这可能是一个版本问题.似乎有两种选择.
我会尝试两者,但maven建议使用HDF Java 2.6.1是错误的.
这篇文章有助于将jarhdf5-3.3.2.jar添加到依赖项中.
https://forums.netbeans.org/post-62903.html#62903
好的,所以我安装了HDF5 1.8.19 HDFView2.14并将jarhdf5-3.3.2添加到依赖项中.但是,当我尝试运行时,我收到此错误:
Caused by: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at hdf.hdf5lib.H5.<clinit>(H5.java:230)
Run Code Online (Sandbox Code Playgroud) 我有一个函数解包一个Z使用zlib库打包的字节数组(从这里改编).
我得到了神秘的错误
'MATLAB array exceeds an internal Java limit.'
Run Code Online (Sandbox Code Playgroud)
在第2 次此代码的行:
import com.mathworks.mlwidgets.io.InterruptibleStreamCopier
a=java.io.ByteArrayInputStream(Z);
b=java.util.zip.GZIPInputStream(a);
isc = InterruptibleStreamCopier.getInterruptibleStreamCopier;
c = java.io.ByteArrayOutputStream;
isc.copyStream(b,c);
M=typecast(c.toByteArray,'uint8');
Run Code Online (Sandbox Code Playgroud)
Z=reshape(Z,[],8);
import com.mathworks.mlwidgets.io.InterruptibleStreamCopier
a=java.io.ByteArrayInputStream(Z(:,1));
b=java.util.zip.GZIPInputStream(a);
for ct = 2:8,b.read(Z(:,ct));end
isc = InterruptibleStreamCopier.getInterruptibleStreamCopier;
c = java.io.ByteArrayOutputStream;
isc.copyStream(b,c);
Run Code Online (Sandbox Code Playgroud)
但在此isc.copystream我得到这个错误:
Java exception occurred:
java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.util.zip.GZIPInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at com.mathworks.mlwidgets.io.InterruptibleStreamCopier.copyStream(InterruptibleStreamCopier.java:72)
at com.mathworks.mlwidgets.io.InterruptibleStreamCopier.copyStream(InterruptibleStreamCopier.java:51)
Run Code Online (Sandbox Code Playgroud)
直接从文件 …