0
我在IntelliJ IDE中編寫了一個Java
應用程序。該應用程序使用Rserve()
連接到R
並訪問腳本。第一個問題是:目前,我的R
腳本直接在我的主要Java項目文件夾下。要訪問R
劇本,我創建了一個RConnection
,然後使用下面的代碼:R與相對路徑和可執行jar的連接問題
RConnection rc1 = new RConnection();
rc1.assign("parseFile", currentPath.concat("/parseFile.R"));
rc1.eval("source(parseFile)");
在代碼currentPath
變量是絕對路徑,這是我獲得使用這樣的:
final String currentPath = currentRelativePath.toAbsolutePath().toString();
然而,我想在我的代碼中進行更改,並希望使用相對路徑訪問我的R
腳本。爲此,我在src
文件夾中創建了一個名爲rscripts
的文件夾,並將我的R
腳本放在此文件夾中。然後使用intelliJ中的Mark directory as
選項將此目錄標記爲Sources root
。要訪問腳本我做了如下修改代碼:
rc1.assign("parseFile", "/rscripts/parseFile.R");
rc1.eval("source(parseFile)");
不過,現在我得到的錯誤:
org.rosuda.REngine.Rserve.RserveException: eval failed, request status: error code: 127
望着錯誤,似乎R
腳本無法訪問。 我應該如何使用相對路徑來訪問R
腳本?
其次,我想將我的應用程序作爲jar文件提供。我是否還應該將R
與jar
文件捆綁在一起,以防用戶在系統中沒有安裝R?
以斜槓開始表示絕對路徑。我只是讀取文件內容以便在Java中進行字符串評估,並且看起來好像有些事情會以這種方式出錯 –