javaoctave jar文件在Mac OSX Eclipse中失败
您好,我目前正在为我的java项目使用EclipseKepler 我想使用Octave(开源的MatLab)进行计算。因此,我尝试使用javaoctave)来帮助我用java进行计算。但是,当我想编译代码时,会出现以下错误: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
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文件