未定义的变量“调制解调器”或类“modem.pskmod”从 java 调用时
我在 matlab 中编写了一段代码,用于调制和解调一些信号。我使用 deploytool
部署它们,并且 .jar
在没有 GUI 的一个应用程序中工作,但给了我未定义的变量“modem”或类“modem.pskmod”。< /code> 在带有 GUI 的应用程序中。
基本上,当我环顾四周时,我想知道什么会导致此错误发生,但我没有找到关于此错误的太多文档。
因为我不明白为什么它在一个应用程序中工作,但在另一个应用程序中失败,因为我在调用该方法时使用的代码几乎相似。
I have written a code in matlab which modulate and demodulate some signals. I deploy them using deploytool
and the .jar
works in one application without GUI but gives me the Undefined variable "modem" or class "modem.pskmod".
in an application with GUI.
Basically, what I want to know what will cause this error to occur as I have look around, I don't find much documentation on this error.
As I don't understand why it work in one application but fails in another when the code I use is almost similar when calling the method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好的,经过大量测试并比较不带 GUI 的应用程序和带 GUI 的应用程序之间的差异。我找到了解决问题的方法。
作为没有 GUI 的应用程序,从应用程序一开始就运行 init 方法(只有一个线程)
<代码>
导入 matlabFunction.*;
公共静态无效主(字符串[]参数){
matlabFunction 测试 = new matlabFunction();
test.runFunction(1, lstABC.toArray());
但
在我的 GUI 代码中,我从 JFrame 中运行 init 方法(main() 包含我的初始化代码),该方法位于 EDT
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
使用上述方式初始化 matlab 方法会发生错误。但是如果我更改调用 init 方法的方式如下,错误就解决了.
<代码> public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
因此,我相信问题的原因不是从启动应用程序的“第一个”线程调用 init 方法。
Ok, after much testing and comparing the difference between an application WITHOUT a GUI and an application WITH a GUI. I found a solution to my problem.
As an application without a GUI run init the method from the start of the application (there is only one thread)
import matlabFunction.*;
public static void main(String[] args) {
matlabFunction test = new matlabFunction();
test.runFunction(1, lstABC.toArray());
}
But in my code with GUI I run the init method from within the JFrame (main() contain my init code) which is inside the EDT
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
The error occur with the above way to init the matlab method. But if I change way of calling the init method as below, the error is solve.
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
So, I believe the reason for my problem is not calling the init method from the "first" thread that starts the application.