R Script ne peut pas lire.Fichier Rda lorsqu'il est exécuté à partir de Java


Je suis nouveau sur Rscript alors veuillez supporter avec moi, j'ai besoin d'exécuter un script R (écrit par un autre développeur) à partir de java et pour cela j'utilise Renjin. Le fichier de script R et les autres fichiers requis se trouvent sur classpath, c'est-à-dire sous le dossier ressources.

Pour y parvenir, je charge Rscript à partir de classpath et il est chargé avec succès, et Rscript essaie de charger un fichier abc.Rda en interne qui est également présent dans classpath (parallèle au script R), le code pour le même est ci-dessous

load('abc.Rda')

Mais quand j'essaie pour exécuter le script, il lève l'exception comme ci-dessous:

Peut pas lire à partir de "fichier:///D:/données/{projet-dir}/abc.Rda " parce que ce n'est pas un fichier.

Veuillez suggérer où je fais une erreur.

Author: coatless, 2016-06-29

1 answers

Je ne sais pas pourquoi l'utilisation du chemin absolu n'a pas fonctionné: peut-être que le script appelle incorrectement setwd(dir='/bad/{project-dir}') quelque part plus tôt?

Renjin assure en fait la médiation des opérations du système de fichiers via Apache Virtual File System (VFS). Donc, si vous voulez spécifiquement une ressource sur le chemin de classe, vous pouvez utiliser le protocole " res:", par exemple:

load('res:com/acme/mypackage/abc.Rda')

Cela devrait fonctionner si le fichier est réellement sur le système de fichiers ou empaqueté dans le cadre d'un fichier jar ou d'une autre archive.

 1
Author: akbertram, 2016-07-08 20:54:59