gpt4 book ai didi

java - Mathematica、J/LINK、JNI、.dll

转载 作者:行者123 更新时间:2023-11-30 07:32:35 24 4
gpt4 key购买 nike

我正在尝试通过 Mathematica 的 J/Link 获取 Java 方法。问题是该方法调用了 JNI(.dll 文件)。在命令行的 Mathematica 之外,一切都很好。但是在 Mathematica 中调用该方法,JVM 返回以下内容:

Java::excptn: A Java exception occurred: java.lang.UnsatisfiedLinkError: ncsa.hdf.hdf5lib.H5.H5Fcreate(Ljava/lang/String;III)I
at ncsa.hdf.hdf5lib.H5.H5Fcreate(Native Method)
at ncsa.hdf.object.h5.H5File.createFile(H5File.java:920)
at H5FileCreateFromMathematica.H5FileCreate(H5FileCreateFromMathematica.java:38).

我花了很多时间尝试让各种排列的类路径和路径都正确无误。这可能仍然是问题所在,尽管我觉得我已经努力排除了这些可能性。

如果您对 (1) 来自 Java 的这条消息的含义甚至更好 (2) 如何修复它有任何见解,我们将不胜感激。

  • 编辑:更多信息,在实现 Artefacto 的非常有用的建议之后 *Artefacto 输入的结果是错误消息的变化。第一次调用时,fileFormat@create["C:\Test"] 产生:

Java::excptn: A Java exception occurred: java.lang.UnsatisfiedLinkError: Native Library C:\MyJava\hdf-java\lib\win\jhdf5.dll already loaded in another classloader
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1772)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1732)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at ncsa.hdf.hdf5lib.H5.<clinit>(H5.java:232)
at ncsa.hdf.object.h5.H5File.createFile(H5File.java:920)
at ncsa.hdf.object.FileFormat.create(FileFormat.java:1472).

立即再次调用,fileFormat@create["C:\Test"] 产生:

Java::excptn: A Java exception occurred: java.lang.NoClassDefFoundError: Could not initialize class ncsa.hdf.hdf5lib.H5
at ncsa.hdf.object.h5.H5File.createFile(H5File.java:920)
at ncsa.hdf.object.FileFormat.create(FileFormat.java:1472).

对解释这些变化有什么帮助,以及让这些变化在 Mathematica 中工作可能意味着什么?

最佳答案

Java 正在寻找 native 库,但没有找到。根据下面链接的论坛帖子,您应该设置“com.wolfram.jlink.libdir”系统属性或 JLINK_LIB_DIR 环境变量。这可能正在配置它应该在何处查找 JLink 本身,因此您也可以尝试将所需的库放在 Mathematica 安装布局中 JLinkNativeLibrary.dll 文件所在的位置。

这是相关的论坛主题: http://forums.wolfram.com/mathgroup/archive/2008/Aug/msg00664.html

关于java - Mathematica、J/LINK、JNI、.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6481413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com