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ドキュメントでは、コードをパッケージとして使用すると機能しないため、.jinitを使用しないように明示的に記載されています。

4

1 に答える 1

11

次のような構造にします。

inst
 java
  jarFileHere.jar 
R
 r_code_file.R

パッケージにJavaを含める方法の例については、helloJavaWorldパッケージを参照してください。

DeducerDeducerplugInExampleのソースも見てください。パッケージにJavaコードを含める方法については、DeducerのWebマニュアルを 参照してください。http ://www.deducer.org/pmwiki/pmwiki.php?n = Main.Development#suaptijc

于 2010-10-02T00:56:47.877 に答える