创建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