我已经用matlab写了一个代码,可以对一些信号进行调制和解调。我使用deploytool部署它们,.jar在一个没有图形用户界面的应用程序中工作,但在一个有图形用户界面的应用程序中提供了Undefined variable "modem" or class "modem.pskmod".。
基本上,当我环顾四周时,我想知道什么会导致这个错误发生,我没有找到关于这个错误的太多文档。
因为我不明白为什么它在一个应用程序中工作,而在另一个应用程序中失败,而我在调用该方法时使用的代码几乎是相似的。
发布于 2010-01-23 00:15:25
好了,经过大量的测试和比较,没有GUI的应用程序和有GUI的应用程序之间的区别。我找到了解决我的问题的办法。
当没有GUI的应用程序运行时,从应用程序启动时初始化该方法(只有一个线程)
import matlabFunction.*;
public static void main(String[] args) {
matlabFunction test = new matlabFunction(); test.runFunction(1, lstABC.toArray());
}
但是在我的GUI代码中,我是从EDT内部的JFrame ()中运行init方法的(main()包含我的初始化代码
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
new main();
} catch (Exception p) {
}
}
});
} 错误发生在上述初始化matlab方法的方法中。但是如果我像下面这样改变调用init方法的方式,错误就解决了。
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
matlabFunction test = new matlabFunction();
new main(test);
} catch (Exception p) {
}
}
});
}
因此,我认为问题的原因是没有从启动应用程序的“第一个”线程调用init方法。
https://stackoverflow.com/questions/2102288
复制相似问题