私はJava
アプリケーションをIntelliJ IDEに書いています。アプリケーションはRserve()
を使用してR
に接続し、スクリプトにアクセスします。最初の質問は:現時点では、私のR
スクリプトは私のメインのJavaプロジェクトフォルダの直下にあります。しかしながら相対パスと実行可能なjarとのR接続の問題
final String currentPath = currentRelativePath.toAbsolutePath().toString();
:R
スクリプトにアクセスするために、私はRConnection
を作成し、以下のコードを使用:コードでcurrentPath
変数iがこれを使用して得た絶対パスである
RConnection rc1 = new RConnection();
rc1.assign("parseFile", currentPath.concat("/parseFile.R"));
rc1.eval("source(parseFile)");
を私は自分のコードを変更したいと思って、R
のスクリプトに相対パスでアクセスしたいのですが。このため、src
フォルダにrscripts
という名前のフォルダを作成し、このフォルダにスクリプトR
を配置しました。私はこのディレクトリにSources root
とマークしました。これはintelliJのMark directory as
オプションです。私は、コードを次のように変更作られたスクリプトにアクセスするには:
rc1.assign("parseFile", "/rscripts/parseFile.R");
rc1.eval("source(parseFile)");
はしかし、今、私はエラーを取得する:
org.rosuda.REngine.Rserve.RserveException: eval failed, request status: error code: 127
はエラーを見ると、R
スクリプトがアクセスすることができないようです。 R
スクリプトにアクセスするために相対パスはどのように使用しますか?
第2に、アプリケーションをjarファイルとして配信したいと考えています。ユーザーがシステムにRをインストールしていない場合は、R
をjar
ファイルにバンドルする必要がありますか?
スラッシュで始まるのは絶対パスです。私はちょうどそのように間違って行くいくつかのように思えるJavaとevalの文字列にファイルの内容を読むだろう –