【发布时间】:2015-11-24 17:59:18
【问题描述】:
我正在做一个项目,我希望在 Matlab 中调用 java 程序。 java程序的示例结构如下:
mainproj
/ | \
src lib bin
/ \ / \
a b ac bd
文件夹“lib”包含 jar 文件。文件夹 ac 和 bd 有 java 的 .classes。文件夹 a 和 b 有 java 文件 + 一些其他类文件。我希望在文件夹a下运行一个名为“launcher.java”的java文件,它使用jar文件并调用文件夹b中可用的java程序,该程序在文件夹ac中有launcher.class文件。
我很困惑如何成功调用这个程序。我在网上找到了一些解决方案,但它们对我不起作用。 Calling Java from MATLAB?, Calling Java from MATLAB, Is it worth to call java from matlab?, Calling Java from Matlab is very slow.
launcher.java文件如下:
package ac;
import....
public class launcher
{
....
....
public static void main(String[] args) { run();}
public static void run() {......}
}
我的表现如下:
javaaddpath('mainproj\lib\x.jar')
javaaddpath('mainproj\bin\ac')
import mainproj.*;
import mainproj.lib.*;
import mainproj.bin.*;
import mainproj.bin.ac.*;
import mainproj.bin.bd.*;
l = launcher;
javaMethod('main', l);
[我希望在文件夹中调用launcher.class的main,因为它会自动调用run()方法,而run()会调用文件夹bd中的其他类文件]
我得到的输出错误是:No class launcher can be located or no methods for class
感谢任何建议/帮助。
【问题讨论】:
-
您是否确认可以直接从命令行、在同一目录中并使用您希望 Matlab 使用的相同设置运行您的 Java 程序?
-
@dimo14 是的!我已经检查了这一切。我在一个目录中检查了一个简单的程序,正在运行,但是上面提到的不起作用。
-
您可以将您运行的命令行添加到您的问题中吗?我有一个理论,但需要知道你是如何成功运行它的。
-
上面已经添加了,我是如何尝试从 MATLAB 中的命令行运行的。
-
对,我看到了 Matlab 代码。我说的是命令行(即
$ java ... ac.launcher ...)。您是否验证过它可以在命令行上运行?如果是这样,确切的命令是什么?如果没有,请先编译 (javac) 并直接运行 (java) 您的 Java 程序,无需 Matlab。