Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javajar文件打包到R包中:在R-CRAN检查期间处理大小限制_Java_R_Jar_Cran_Rjava - Fatal编程技术网

将javajar文件打包到R包中:在R-CRAN检查期间处理大小限制

将javajar文件打包到R包中:在R-CRAN检查期间处理大小限制,java,r,jar,cran,rjava,Java,R,Jar,Cran,Rjava,我想通过CRAN发布一个R包。这个包包含R代码和Java代码,这两个代码都是我自己编写的。我将Java代码打包到一个JAR容器中,将JAR文件存储在inst/Java/目录中,并将其源代码存储在R包的Java目录中。我使用包所依赖的rJava包中的高级函数访问JAR文件的功能。我还将JAR文件作为独立软件分别发布给不同的用户群。到目前为止,一切顺利 现在我想通过CRAN发布该包,但CRAN检查带来了一个提示: N checking installed package size ...

我想通过CRAN发布一个R包。这个包包含R代码和Java代码,这两个代码都是我自己编写的。我将Java代码打包到一个JAR容器中,将JAR文件存储在
inst/Java/
目录中,并将其源代码存储在R包的
Java
目录中。我使用包所依赖的
rJava
包中的高级函数访问JAR文件的功能。我还将JAR文件作为独立软件分别发布给不同的用户群。到目前为止,一切顺利

现在我想通过CRAN发布该包,但CRAN检查带来了一个提示:

N  checking installed package size ...
     installed size is  9.1Mb
     sub-directories of 1Mb or more:
       java   8.1Mb
这是因为我的Java程序依赖于以JAR文件的形式打包到我的JAR文件中的其他开源软件(因此我的JAR文件是一个开源软件)。例如,作为Java程序的一部分,我访问SQLite数据库,为此我需要SQLite JDBC JAR程序,它大约有7MB

由于SQLite JDBC代码是在Appache 2.0许可证下发布的,它与GPL3兼容,因此不应该存在许可问题,我计划在我的包中以适当的方式声明这一点

但我担心CRAN团队会因为其嵌入式代码和驱动程序的大小而拒绝我的包。我在CRAN策略中没有发现任何关于嵌入式源代码(和编译代码)大小限制的内容,但可能我没有仔细查看——欢迎使用任何指针。我确实看到了一些关于数据大小限制的信息,这些信息通常存储在
inst/extdata
下,但我相信这不适用于我的情况,因为它既不是数据,也不是存储在那个地方。如果CRAN策略中没有关于这种大小限制的任何内容,我如何删除R CMD检查中的注释

我找到了一个类似问题的另一个答案。建议在
zzz.R
文件中临时下载JAR文件;至少我认为这是推荐的,因为这里提供的链接似乎不包含实际的代码,而只包含一行内容
.h2o.downloadJar()
。有人能确认这是官方的包含大型代码的CRAN政策吗

我使用了一种解决方案,在安装包期间下载JAR文件,并将其存放在包的
inst/java/
目录中。我希望安装会将新下载的JAR移动到库路径中包的
java/
目录。但是文件没有被复制,所以我回到了原点