2016-08-01 2 views
0

IntelliJ IDE에 Java 응용 프로그램을 쓰고 있습니다. 응용 프로그램은 Rserve()을 사용하여 R에 연결하고 스크립트에 액세스합니다. 첫 번째 질문은 : 현재 내 R 스크립트는 내 메인 자바 프로젝트 폴더 바로 아래에 있습니다. R 스크립트에 액세스하기 위해, I는 RConnection를 생성하고 다음 코드를 사용상대 경로와 실행 가능한 jar의 R 연결 문제

RConnection rc1 = new RConnection(); 
rc1.assign("parseFile", currentPath.concat("/parseFile.R")); 
rc1.eval("source(parseFile)"); 

코드의 currentPath 변수 I 이것을 사용하여 구하는 절대 경로이며, 그러나

final String currentPath = currentRelativePath.toAbsolutePath().toString(); 

을 내 코드를 변경하고 상대 경로를 사용하여 R 개의 스크립트에 액세스하고 싶습니다. 이를 위해 src 폴더에 rscripts 폴더를 만들고이 폴더에 내 R 개의 스크립트를 배치했습니다. intireiJ에서 Mark directory as 옵션을 사용하여이 디렉토리를 Sources root으로 표시했습니다.

org.rosuda.REngine.Rserve.RserveException: eval failed, request status: error code: 127 

이는 R 스크립트가 액세스 할 수없는 것으로 보인다 오류에 상대 : 지금은 오류, 그러나

rc1.assign("parseFile", "/rscripts/parseFile.R"); 
rc1.eval("source(parseFile)"); 

: 스크립트를 액세스하기 위해 코드를 다음과 같이 변경했다. R 스크립트에 액세스하는 상대 경로는 어떻게 사용해야합니까?

둘째, jar 파일로 응용 프로그램을 제공하고 싶습니다. 사용자가 시스템에 R을 설치하지 않은 경우를 대비하여 Rjar 파일과 함께 제공해야합니까?

+0

슬래시로 시작하는 것은 절대 경로를 의미합니다. 나는 자바와 eval에서 파일 내용을 문자열로 읽어 들일 것이고, 그렇게 잘못 될 것 같지 않다. –

답변

0

내 생각 엔 setwd()를 사용하여 R 작업 디렉토리를 올바른 위치로 변경해야한다는 것입니다. 이 후에는 파일 이름 만 source() 함수에 전달하면 충분합니다.

관련 문제