javaoctave jar文件在Mac OSX Eclipse中失败

javaoctave jar文件在Mac OSX Eclipse中失败,java,eclipse,macos,octave,Java,Eclipse,Macos,Octave,您好,我目前正在为我的java项目使用EclipseKepler 我想使用Octave(开源的MatLab)进行计算。因此,我尝试使用javaoctave)来帮助我用java进行计算。但是,当我想编译代码时,会出现以下错误: Exception in thread "main" dk.ange.octave.exception.OctaveIOException: java.io.IOException: Cannot run program "octave": error=2, No such

您好,我目前正在为我的java项目使用EclipseKepler

我想使用Octave(开源的MatLab)进行计算。因此,我尝试使用javaoctave)来帮助我用java进行计算。但是,当我想编译代码时,会出现以下错误:

Exception in thread "main" dk.ange.octave.exception.OctaveIOException: java.io.IOException: Cannot run program "octave": error=2, No such file or directory
    at dk.ange.octave.exec.OctaveExec.<init>(OctaveExec.java:102)
    at dk.ange.octave.OctaveEngine.<init>(OctaveEngine.java:65)
    at dk.ange.octave.OctaveEngineFactory.getScriptEngine(OctaveEngineFactory.java:49)
    at learn.CapabilityLearner.connectOctave(CapabilityLearner.java:72)
    at learn.CapabilityLearner.connect(CapabilityLearner.java:37)
    at learn.CapabilityLearner.<init>(CapabilityLearner.java:24)
    at learn.capability.CapabilityMeanVarianceEquation.<init>(CapabilityMeanVarianceEquation.java:10)
    at parse.basketball.runner.GetPlayerFrequency.learnSynergyGraph(GetPlayerFrequency.java:102)
    at parse.basketball.runner.GetPlayerFrequency.main(GetPlayerFrequency.java:94)
Caused by: java.io.IOException: Cannot run program "octave": error=2, No such file or directory
    at java.lang.ProcessBuilder.processException(ProcessBuilder.java:478)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:457)
    at java.lang.Runtime.exec(Runtime.java:593)
    at dk.ange.octave.exec.OctaveExec.<init>(OctaveExec.java:100)
    ... 8 more
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
    at java.lang.ProcessImpl.start(ProcessImpl.java:91)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
    ... 10 more
线程“main”dk.ange.octave.Exception.OctaveIOException:java.io.IOException:无法运行程序“octave”:错误=2,没有这样的文件或目录 在dk.ange.octave.exec.OctaveExec.(OctaveExec.java:102) 在dk.ange.OctaveEngine.OctaveEngine.(OctaveEngine.java:65) 位于dk.ange.octave.OctaveEngineFactory.getScriptEngine(OctaveEngineFactory.java:49) 在learn.CapabilityLearner.connectOctave(CapabilityLearner.java:72) 在learn.CapabilityLearner.connect(CapabilityLearner.java:37) 在learn.CapabilityLearner。(CapabilityLearner.java:24) 在learn.capability.CapabilityMeanVarianceEquation.(CapabilityMeanVarianceEquation.java:10) 在parse.basketball.runner.GetPlayerFrequency.learnSynergyGraph(GetPlayerFrequency.java:102)中 位于parse.basketball.runner.GetPlayerFrequency.main(GetPlayerFrequency.java:94) 原因:java.io.IOException:无法运行程序“octave”:错误=2,没有这样的文件或目录 位于java.lang.ProcessBuilder.processException(ProcessBuilder.java:478) 位于java.lang.ProcessBuilder.start(ProcessBuilder.java:457) 位于java.lang.Runtime.exec(Runtime.java:593) 在dk.ange.octave.exec.OctaveExec.(OctaveExec.java:100) ... 8个以上 原因:java.io.IOException:error=2,没有这样的文件或目录 位于java.lang.UNIXProcess.forkAndExec(本机方法) 位于java.lang.UNIXProcess(UNIXProcess.java:53) 在java.lang.ProcessImpl.start(ProcessImpl.java:91) 位于java.lang.ProcessBuilder.start(ProcessBuilder.java:452) ... 10多 这个java项目已经成功地运行在带有EclipseKepler的Windows机器上,所以我认为不是我的代码包含错误。作者已经提到了这个错误,并给出了一些解释。然而,由于缺乏编程经验,我无法理解解决方案的含义。谁能帮我找出问题并教我如何解决

非常感谢!:)

PS:项目的.classpath如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="lib" path="matlabcontrol-4.0.0.jar"/>
    <classpathentry kind="lib" path="javaoctave-0.6.4.jar" sourcepath="javaoctave-0.6.4.jar"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="lib" path="commons-math-2.2.jar"/>
    <classpathentry kind="lib" path="commons-logging-1.1.3.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

您可以轻松解决设置工厂的问题

OctaveEngineFactory factory = new OctaveEngineFactory();
factory.setOctaveProgram(new File("path_to_octave_executable"));
OctaveEngine octave = factory.getScriptEngine();

bgcode

另外,它说找不到源代码,但我认为这是因为我使用了编译过的jar文件,所以无法查看源代码。但我不认为这是这个错误的原因。项目文件夹中的.classpath文件中有什么?(编辑你的问题并放在那里)@Kyllopardiun我已经添加了.classpath文件