首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java调用时,未定义变量"modem“或类"modem.pskmod”

从java调用时,未定义变量"modem“或类"modem.pskmod”
EN

Stack Overflow用户
提问于 2010-01-20 23:03:36
回答 1查看 1.6K关注 0票数 0

我已经用matlab写了一个代码,可以对一些信号进行调制和解调。我使用deploytool部署它们,.jar在一个没有图形用户界面的应用程序中工作,但在一个有图形用户界面的应用程序中提供了Undefined variable "modem" or class "modem.pskmod".

基本上,当我环顾四周时,我想知道什么会导致这个错误发生,我没有找到关于这个错误的太多文档。

因为我不明白为什么它在一个应用程序中工作,而在另一个应用程序中失败,而我在调用该方法时使用的代码几乎是相似的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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() {

代码语言:javascript
复制
        public void run() {
            try {

                new main();
            } catch (Exception p) {
            }
        }
    });
}  

错误发生在上述初始化matlab方法的方法中。但是如果我像下面这样改变调用init方法的方式,错误就解决了。

public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() {

代码语言:javascript
复制
        public void run() {
            try {
                matlabFunction test = new matlabFunction();
                new main(test);
            } catch (Exception p) {
            }
        }
    });
} 

因此,我认为问题的原因是没有从启动应用程序的“第一个”线程调用init方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2102288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档