我试图从R运行使用rJava软件包的可运行JAR文件。这个罐子有写入和读取一些文件到/从外部文件夹,这是在为JAR文件本身相同的路径,像这样:从R运行jar时rJava NoSuchFileException
mypath/myjar.jar
mypath/folder1
mypath/folder2
mypath/input_file1.txt
mypath/input_file2.txt
程序工作正常,如果我在打开一个控制台叫它“mypath中”运行罐子方式如下:
java -jar myjar.jar input_file1.txt input_file2.txt false
但是当我尝试运行在读该代码,使用rJava,代码崩溃在某些时候,因为它不能找到既mypath中/资料夹,也不mypath/folder2,即使工作目录被正确定义为“mypath”。
jinit(".",force.init=TRUE) # this starts the JVM
.jaddClassPath("myjar.jar")
jobject <- .jnew("package_name/Main") ## call the constructor
result_java <- rJava::.jcall(obj = jobject, returnSig = "V", method = "main", c("input_file1.txt","input_file2.txt","false"))
事实上,Java程序被调用,它是能够真正找到输入文件,这也是mypath中,但由于某种原因崩溃时,它尝试写入文件夹mypath中(如文件夹1和文件夹2)与错误:
Error executing task java.nio.file.NoSuchFileException: folder1/some_file.txt
我真的不知道发生了什么事,花了几个小时这一点。我在这里错过了非常明显的东西吗?