Я пишу приложение Java
в IntelliJ IDE. Приложение использует Rserve()
для подключения к R
и доступа к сценариям. Первый вопрос: на данный момент мои сценарии R
находятся прямо под моей основной папкой проекта java. Чтобы получить доступ к R
сценарию, я создаю RConnection
, а затем использовать следующий код:Проблемы с R-соединением с относительным путем и исполняемым банком
RConnection rc1 = new RConnection();
rc1.assign("parseFile", currentPath.concat("/parseFile.R"));
rc1.eval("source(parseFile)");
currentPath
переменные в коде является абсолютным путем, который я получаю с помощью этого:
final String currentPath = currentRelativePath.toAbsolutePath().toString();
Однако, Я хочу внести изменения в свой код и хотел бы получить доступ к моим сценариям R
, используя относительный путь. Для этого я создал папку с именем rscripts
в папке src
и разместил мои R
скрипты в этой папке. Затем я пометил этот каталог как Sources root
, используя опцию Mark directory as
в intelliJ. Чтобы получить доступ к сценариев, я сделал следующие изменения в коде:
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 и eval, похоже, что несколько вещей идут не так, как надо –