1

今年の初めに、画像取得の目的で Matlab 環境で動作するように Java GUI をコーディングしました。matlab 内で Java_Gui.jar を呼び出すことができ、.jar ファイルからいくつかのクラスを使用することもできました。GUI は、WinXP 32 ビット、Matlab2006b および Matlab 2008a でテストされました。Java クラスを呼び出すための Matlab コード:

clc,clear all,close all

javaaddpath('C:\Users\...\JavaGUI.jar');

JavaGUI.main([]);
pause(1)
JavaGUI.main2();

ただし、64 ビットの Win7 と Matlab2011a で同じプログラムを試したところ、おなじみの問題が発生しました。

??? Java exception occurred:
java.lang.UnsatisfiedLinkError: no sserial in java.library.path

なぜこれが起こっているのですか?jar ファイルを 64 ビット バージョンでコンパイルする必要があるのでしょうか。コードはまだ 32 ビット Win で動作しており、チェックしたところです。

回答: 64 ビット Windows 7 上の 32 ビット バージョンの Matlab で動作します!

4

2 に答える 2

2

おそらくあなたの JAR は JNI を使用しています。

JNI は、ネイティブ部分を含む DLL とは異なるビット数のプロセスにロードできません。その場合、ライブラリの 64 ビット バージョンが必要になります (Java コードも同じで、ネイティブ DLL も同じです)。

于 2012-07-13T16:58:19.437 に答える
2

問題は、64 ビット JRE で実行するために 64 ビット バージョンが必要なネイティブ ライブラリを呼び出す Java のライブラリを使用していることです。Matlab の 32 ビット バージョンに切り替えるか、sserial へのネイティブ呼び出しを行うライブラリを追跡して、64 ビット システム用の 64 ビット バージョンに更新する必要があります。

于 2012-07-13T16:58:20.297 に答える