0
私はこのエラーを受け取りました。何をすべきか分からず、このサイトで他の解決策を見つけることができませんでした。私はコンピュータ上でバックグラウンドでRserveを実行し、ローカルホストに接続します。しかし、私はフレームをポップアップすることはできません。ここで
が私のコードです:Rserve with java。 Eval fail error 127
package rservedemo;
/**
*
* @author Carl
*/
import java.awt.*;
import java.awt.event.*;
import org.rosuda.REngine.*;
import org.rosuda.REngine.Rserve.*;
public class PlotDemo extends Canvas {
public static void main(String[] args) {
try
{
String device = "jpeg";
RConnection c = new RConnection ((args.length>0)?args[0]:"127.0.0.1");
if
(c.parseAndEval("supressWarnings(require('Cairo',quietly=TRUE))").asInteger()>0) device="CarioJPEG";
else
System.out.println("(Consider installing Cairo package for better bitmap output)");
REXP xp = c.parseAndEval("Try("+device+"('test.jpg,quality=90))");
if (xp.inherits("Try error"))
{
System.err.println("Can't open "+device+" graphics device:\n" +xp.asString());
REXP w = c.eval("If (exists('last.warning') && length(last.warning)>0)names(last.warning) [1] else 0");
if (w.isString()) System.err.println(w.asString());
return;
}
c.parseAndEval("data(iris); plot(iris$Sepal.Length, iris$Petal.Length); dev.off()");
xp = c.parseAndEval("r=readBin('test.jpg','raw',1024*1024); unlink('test.jpg');r");
Image img = Toolkit.getDefaultToolkit().createImage(xp.asBytes());
Frame f = new Frame("Test image");
f.add(new PlotDemo (img));
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}
});
f.pack();
f.setVisible(true);
c.close();
}
catch (RserveException rse)
{
System.out.println(rse);
}
catch (REXPMismatchException mme)
{
System.out.println(mme);
mme.printStackTrace();
}
catch (Exception e)
{
System.out.println("Seomthing went wrong, but it's not Rserve: " +e.getMessage());
e.printStackTrace();
}
}
Image img;
public PlotDemo(Image img)
{
this.img=img;
MediaTracker mediaTracker = new MediaTracker(this);
mediaTracker.addImage(img, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
setSize(img.getWidth(null), img.getHeight(null));
}
public void paint (Graphics g)
{
g.drawImage(img, 0, 0, null);
}
}
そして、ここではエラーになり、私は27で行を変更しようとしましたが、有益な何かをcouldntのしています。私が走るときには、
c.parseAndEval("data(iris); plot(iris$Sepal.Length, iris$Petal.Length); dev.off()");
がそこにあります。そのような用量が問題であるように思われる。
Seomthing went wrong, but it's not Rserve: eval failed, request status: error code: 127
org.rosuda.REngine.REngineException: eval failed, request status: error code: 127
at org.rosuda.REngine.Rserve.RConnection.parseAndEval(RConnection.java:454)
at org.rosuda.REngine.REngine.parseAndEval(REngine.java:108)
at rservedemo.PlotDemo.main(PlotDemo.java:27)
感謝ヘルプ
そして "supressWarningsは" あまりにも間違って見えます。それはあなたが呪文を抑制する方法ではありません! –