r调用java_R语言直接调用Java代码

R语言直接调用Java代码

我们都知道Java语言长期处于霸主地位,在所有编程语言排行榜中,Java也是常年位居第一。在近几年也是爆炸式发展,几乎覆盖到了应用开发的所有领域。而R语言则在统计圈和数据可视化处于佼佼者,如果将Java的通用性和R的专业性紧密结合起来,就可以碰撞出不一样的火花。

在之前两篇文章中我已经写了如何在Java程序中调用R代码,

cdc84c3f4fdf0e7ab418283a0964fda6.png

想必很多人都知道rjava包是一个R语言和Java语言的通信接口,通过底层JNI实现调用,允许R直接调用java对象的方法。可今天我就一个简单的函数system()来实现在R语言直接调用Java程序。

下面这个Java程序是用来计算斐波拉契数列的,我已经赋初值为5,

public class NoParameter {

public void printFibo(int n){

for(int i=1;i<=n;i++){

System.out.println(f(i)+" ");

if (i%10==0) {

System.out.println();

}

}

}

long f(long n){

if (n==1||n==2) {

return 1;

} else {

return f(n-1)+f(n-2);

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

new NoParameter().printFibo(5);

}

}

(上下滑动可查看代码)

运行结果如下:

db5be1eeacf1f091ac657f6eb71deb00.png

在R语言中,我们只需要用两句话就可以调用这个程序:

system("javac NoParameter.java")#生成.class文件

system("java NoParameter")#执行NoParameter文件

运行结果如下:

6d409cc110a2d0177e57ede3f21af2a9.png

下面这个Java程序也是用来计算斐波拉契数列的,不过它需要在运行时写入参数,用来告诉程序你需要多少位的数列。

public class Parameter {

public void printFibo(int n){

for(int i=1;i<=n;i++){

System.out.println(f(i)+" ");

if (i%10==0) {

(上下滑动可查看代码)

88f3ede7d8c834b23896c0095bbe140d.png

这个在R语言中也需要两句话就可以运行:

system("javac Parameter.java")

system("java Parameter 6")

运行结果为

0e521334dd7bcc0f1e0740368b954a70.png

这里需要注意的就是Main函数参数String[] args,它是一个字符串数组,用来接收从命令行输入的参数。参数之间用空格隔开,java解释器会自动处理,把用空格隔开的每一个参数通过args数组传递给main方法。参数下标从0开始,args[0]就代表1第一个参数。当然输入参数之间可以有多个空格,中间的多个空格会被忽略掉。

完 谢谢观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值