1

今年早些时候,我编写了 Java GUI 代码,以便在 Matlab 环境中工作以获取图像。我能够在 matlab 中调用 Java_Gui.jar,以及使用 .jar 文件中的一些类。该图形用户界面在 WinXP 32 位、Matlab2006b 和 Matlab 2008a 上进行了测试。调用Java类的matlab代码:

clc,clear all,close all

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

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

但是,当在 64 位和 Matlab2011a 上使用 Win7 尝试相同的程序时,出现了熟悉的问题:

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

知道为什么会这样吗?也许我应该在 64 位版本上编译我的 jar 文件?该代码仍在 32bit Win 上运行,刚刚检查过。

解答: 可在 64 位 Windows 7 上使用 32 位版本的 Matlab!

4

2 回答 2

2

可能您的 JAR 使用 JNI。

JNI 将无法加载到与包含本机部分的 DLL 不同位数的进程中。在这种情况下,您需要一个 64 位版本的库(Java 代码没有什么不同,本机 DLL 是)。

于 2012-07-13T16:58:19.437 回答
2

问题是您在 java 中使用了一个库来调用本地库,您需要 64 位版本才能在 64 位 JRE 中运行它。您需要切换到 32 位版本的 Matlab,或者跟踪对 sserial 进行本机调用的库并更新到 64 位系统的 64 位版本。

于 2012-07-13T16:58:20.297 回答