【发布时间】:2013-10-27 23:42:38
【问题描述】:
如何从 matlab 运行 clojure 脚本?
我尝试了以下操作: 用jdk 1.7运行matlab,然后调用java
MATLAB_JAVA=/usr/lib/jvm/java-7-oracle/jre matlab
在matlab中,设置classpath并使用clojure编译器
javaaddpath([pwd '/lib/clojure-1.5.1.jar'])
import clojure.lang.RT
这里出现错误:
Error using import
Import argument 'clojure.lang.RT' cannot be found or cannot be imported.
当我编写运行 clojure 的 java 类时,一切都可以从控制台运行,但不能从 matlab 运行。 请指教。
【问题讨论】:
-
据我记得,如果你想使用使用 Matlab 包含的不同 Java 版本(即 1.6)编译的类或 Java 包,Matlab 会遇到问题。
-
我猜这就是他使用 MATLAB_JAVA 的原因。这应该使 matlab 使用指向的 jvm,而不是 MATLAB 中包含的 jvm。而且,由于这似乎是在 linux 系统上:MATLAB 只在 Windows 上带来自己的 jre,afaik。
-
既然你说你想运行一个脚本,而不是调用 Clojure 函数或类似的东西,你不能用
system来做吗? -
这是我所做的解决方法。使用系统在单独的进程中运行 clojure,并将结果保存为临时文件中的 java 对象。然后从 matlab 读取这个文件。丑陋,但工作。
-
您运行的是什么操作系统、操作系统版本和 Matlab 版本?