未定義の変数「モデム」またはJavaから呼び出すクラス「modem.pskmod」
-
21-09-2019 - |
質問
Iは変調し、いくつかの信号を復調MATLABでコードを書かれています。私はdeploytool
を使用してそれらを展開し、.jar
はGUIなしで一つのアプリケーションで動作しますが、私のGUIを使用してアプリケーションでUndefined variable "modem" or class "modem.pskmod".
を与えます。
基本的に、私は、私は周りを見てきたように、私はこのエラーに多くのドキュメントを見つけることはありませんが発生し、このエラーが発生しますかを知りたい。
それは別であるアプリケーションで動作しますが、失敗した理由メソッドを呼び出すときに、コードIの使用がほぼ同じであるとき、私は理解していないとして、
解決
[OK]を、多くの試験後及びGUIことなく、アプリケーションおよびGUIを使用してアプリケーションとの間の差を比較します。私は私の問題への解決策を見つけます。
アプリケーションの開始から方法INIT GUI実行せずにアプリケーションとして(一つだけスレッドがある)
import matlabFunction.*;
public static void main(String[] args) {
matlabFunction test = new matlabFunction();
test.runFunction(1, lstABC.toArray());
}
しかし、GUI私と私のコードEDT
の内側にあるのJFrame(メイン()私のinitコードを含ん)内からのinitメソッドを実行中 public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
new main();
} catch (Exception p) {
}
}
});
}
エラーは、MATLAB方法を初期化するために、上記の方法で発生します。しかし、以下のように、initメソッドを呼び出すのI変更方法は、エラーがある場合は解決します。
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メソッドを呼び出していないと信じています。