【问题标题】:javaoctave jar file has failed in Mac OSX Eclipsejavaoctave jar 文件在 Mac OSX Eclipse 中失败
【发布时间】:2014-07-22 17:02:38
【问题描述】:

您好,我目前正在为我的 java 项目使用 Eclipse Kepler。

我想使用 Octave(开源的 MatLab)进行计算。因此,我尝试使用 javaoctave (https://kenai.com/projects/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

这个 java 项目已经在带有 Eclipse Kepler 的 Windows 机器上成功运行,所以我认为不是我拥有的代码包含错误。 wiki 提到了错误并给出了一些解释。但是,由于我缺乏编程经验,我无法理解解决方案的含义。谁能帮我找出问题并教我如何解决这个问题?

非常感谢! :)

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>

【问题讨论】:

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

标签: java eclipse macos octave


【解决方案1】:

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

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

bgcode

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 2011-12-21
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多