创建R包时包含jar文件

我创建了一个骨架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文档明确表示不使用.jinit,因为当代码用作包时它不起作用。

使你的结构像:

 inst java jarFileHere.jar R r_code_file.R 

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

另请参阅Deducer和DeducerplugInExample的来源。 在Deducer的网络手册中有一个关于在你的软件包中包含java代码的教程: http : //www.deducer.org/pmwiki/pmwiki.php?n = Main.Development#suaptijc