2010-10-09 80 views
4

嗨,大家好 我想问一下,是否有人成功与JRI和rJava合作?我想把一些图形,R中的图形放到我的Java应用程序中,但没有成功。任何人都可以提供工作示例。这是我发现的,但它不起作用。谢谢从R调用到Java应用程序

import org.rosuda.JRI.REXP; 
import org.rosuda.JRI.Rengine; 
/** 
* @author Nero 
*In this file, i will try to plot a simple example, only to test how it?s possible to plot through java 
*Attention: Nothing will work if you have not included the JRI.jar as library (through properties)*/ 

public class TryPlot { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     //start the Rengine (JRI) 
     Rengine re = new Rengine(null, false, null); 

     //in R: >a<- c(1.2,2.3,4.5) : 
     double da[] = {1.2, 2.3, 4.5}; 
     long xp3 = re.rniPutDoubleArray(da); 
     re.rniAssign("a", xp3, 0); 
     //look up for a: 
     REXP x; 
     x = re.eval("a"); 
     System.out.println(x); 
     //THE PROBLEM: The window opens, but nothing happens??? 
     re.eval(" plot(a)"); 
    } 

} 

回答

2

我认为普通的R图形设备只有在R GUI中使用它时才起作用,而不是从java或命令行启动。 因此,我使用包“JavaGD”作为图形设备,这工作正常。 Plot打印在一个普通的JFrame中,甚至可以通过子类化来扩展它。