javaoctave jar文件在Mac OSX Eclipse中失败 [英] javaoctave jar file has failed in Mac OSX Eclipse

查看:228
本文介绍了javaoctave jar文件在Mac OSX Eclipse中失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我想使用Octave(开源MatLab)进行计算。因此,我尝试使用javaoctave (https://kenai.com/projects/javaoctave )来帮助我在java中进行计算。但是,当我想编译我的代码时,我会收到以下错误:

 线程main中的异常dk.ange.octave .exception.OctaveIOException:java.io.IOException:无法运行程序octave:error = 2,没有这样的文件或目录
在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)
在learn.CapabilityLearner.connectOctave(CapabilityLearner.java:72)
在learn.CapabilityLearner.connect(CapabilityLearner.java:37)
在learn.CapabilityLearner。< init>(CapabilityLearner.java: 24)
在learn.capability.CapabilityMeanVarianceEquation。< init>(CapabilityMeanVarianceEquation.java:10)
at parse.basketball.runner.GetPlayerFrequency.learnSynergyGraph(GetPlayerFrequency.java:102)
at parse.basketball.runner.GetPlayerFrequency.main(GetPlay erFrequency.java:94)
导致:java.io.IOException:无法运行程序octave:error = 2,没有这样的文件或目录
在java.lang.ProcessBuilder.processException(ProcessBuilder。 java.lang.Runtime.exec(Runtime.java:593)
.octave.exec.OctaveExec。< init>(OctaveExec.java:100)
... 8更多
导致:java.io.IOException:error = 2,没有这样的文件或目录
在java.lang.UNIXProcess.forkAndExec(本机方法)
在java.lang.UNIXProcess。< init>(UNIXProcess.java:53)
在java.lang.ProcessImpl.start( ProcessImpl.java:91)
在java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
... 10更多

这个java项目已经在使用Eclipse Kepler的Windows机器上成功运行,所以我认为它不是包含错误的代码。 wiki 提到了错误,给出了一些解释。然而,由于我缺乏编程经验,我无法掌握解决方案的意义。任何人都可以帮我找出问题,教我如何解决这个问题?



非常感谢! :)



PS:项目的.classpath如下:

 <?xml version =1.0encoding =UTF-8?> 
< classpath>
< classpathentry kind =srcpath =src/>
< classpathentry kind =libpath =matlabcontrol-4.0.0.jar/>
< classpathentry kind =libpath =javaoctave-0.6.4.jarsourcepath =javaoctave-0.6.4.jar/>
< classpathentry kind =conpath =org.eclipse.jdt.launching.JRE_CONTAINER/>
< classpathentry kind =libpath =commons-math-2.2.jar/>
< classpathentry kind =libpath =commons-logging-1.1.3.jar/>
< classpathentry kind =outputpath =bin/>
< / classpath>


解决方案

您可以轻松地解决您的问题设置Factory

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

bgcode


Hi I am currently using Eclipse Kepler for my java project.

I wanted to use the Octave (the open sourced MatLab) for calculation. Therefore I have tried to use the javaoctave (https://kenai.com/projects/javaoctave) to help me do the calculation in java. However, when I want to compile my code I get the following error:

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

This java project has been successfully run on a Windows machine with Eclipse Kepler so I think it is not the code I have that contains an error. the wiki has mentioned the error and some explanation is given. However, due to my lack of experience with programming I could not have grasped the meaning of the solutions. Can anyone help me to identify the problem and teach me how I shall fix this?

With many thanks ! :)

PS : the .classpath of the project is as followed:

<?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>

解决方案

You can easily solve your problem setting up the Factory

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

bgcode

这篇关于javaoctave jar文件在Mac OSX Eclipse中失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆