Неопределенная переменная “modem” или класс “modem.pskmod” при вызове из java

StackOverflow https://stackoverflow.com/questions/2102288

Вопрос

Я написал код в matlab, который модулирует и демодулирует некоторые сигналы.Я развертываю их с помощью deploytool и тот .jar работает в одном приложении без графического интерфейса, но дает мне Undefined variable "modem" or class "modem.pskmod". в приложении с графическим интерфейсом.

В принципе, то, что я хочу знать, что вызовет возникновение этой ошибки, поскольку я осмотрелся, я не нашел много документации по этой ошибке.

Поскольку я не понимаю, почему это работает в одном приложении, но терпит неудачу в другом, когда код, который я использую, почти аналогичен при вызове метода.

Это было полезно?

Решение

Хорошо, после долгого тестирования и сравнения разницы между приложением БЕЗ графического интерфейса и приложением С графическим интерфейсом.Я нашел решение своей проблемы.

Как приложение без графического интерфейса, запустите init метод с самого начала приложения (существует только один поток)
import matlabFunction.*;
public static void main(String[] args) {
matlabFunction test = new matlabFunction(); test.runFunction(1, lstABC.toArray());
}

Но в моем коде с графическим интерфейсом я запускаю метод init из JFrame (main() содержит мой код инициализации), который находится внутри EDT

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 из "первого" потока, который запускает приложение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top