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 でこれを機能させるために何を意味するのでしょうか?