8

我创建了一个骨架 R 包:

lib
 jarFileHere.jar 
R
 r_code_file.R

r_code_file.R尝试引用 jarFileHere.jar 中的文件

library("rJava")
library("rjson")

.onLoad <- function(libname, pkgname) {
  .jpackage(pkgname, lib.loc=libname)
}

.onLoad("packagename", "../lib/jarFileHere.jar")

.jnew("com/test/ClassHere", "") 

但是由于 java.lang.NoClassDefFoundError 导致失败。

我能够使用它来工作

.jinit
.jaddClassPath("../lib/jarFileHere.jar")

但是 rJava 文档明确表示不要使用 .jiit 因为当代码用作包时它不起作用。

4

1 回答 1

11

使您的结构如下:

inst
 java
  jarFileHere.jar 
R
 r_code_file.R

有关如何在包中包含 java 的示例,请查看helloJavaWorld包。

另请查看DeducerDeducerplugInExample的来源。Deducer 的网络手册上有一个关于在包中包含 java 代码的教程:http: //www.deducer.org/pmwiki/pmwiki.php? n=Main.Development#suaptijc

于 2010-10-02T00:56:47.877 回答