Salut, Actuellement, les libs native jri sont committées dans le projet, mais elles sont spécifiques à chaque version de majeures de R. Pour R 3.0.x il faut les dll/so pour R 3.0 Il faudrait faire de multiples release à chaque version ce qui n'est pas top. On pourrait aussi supprimer le check de version dans ce fichier https://github.com/s-u/rJava/blob/master/jri/src/Rinit.c#L199 sachant que le test est faux, et que pour R 2.10 à 2.13, cela n'a pas posé de problème. Sauf que pour builder le dll ... voilà quoi :) L'autre possibilité demanderait une action utilisateur et lui demanderait d'installer le package R 'rJava' (aka le support java dans R), il serait fournir par R. Le point génant est la ligne de commande ensuite pour réussir à trouver le fichier jri.dll ou libjri.so: java -Djava.library.path=$R_HOME/library/rJava/jri Qu'en pensez-vous ? -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Le mardi 8 avril 2014 17:55:01 Eric Chatellier a écrit :
Salut,
Actuellement, les libs native jri sont committées dans le projet, mais elles sont spécifiques à chaque version de majeures de R. Pour R 3.0.x il faut les dll/so pour R 3.0 […] L'autre possibilité demanderait une action utilisateur et lui demanderait d'installer le package R 'rJava' (aka le support java dans R), il serait fournir par R. Le point génant est la ligne de commande ensuite pour réussir à trouver le fichier jri.dll ou libjri.so: java -Djava.library.path=$R_HOME/library/rJava/jri
Qu'en pensez-vous ?
Bonjour, Le plus pratique est clairement de reposer sur l'installation du package R pour avoir la bibliothèque compilée pour chaque architecture. Pour récupérer l'emplacement d'installation, tu peux utiliser un truc du genre : installed.packages()[which(installed.packages()[,1]=="rJava"),]['LibPath'] Pas plus d'idée … -- Nicolas Dumoulin +33 (0)4.73.44.07.29 Ingénieur d'études - Irstea, LISC http://motive.cemagref.fr/people/nicolas.dumoulin
Le 14/04/2014 14:13, Nicolas Dumoulin a écrit :
Bonjour,
Le plus pratique est clairement de reposer sur l'installation du package R pour avoir la bibliothèque compilée pour chaque architecture. Pour récupérer l'emplacement d'installation, tu peux utiliser un truc du genre : installed.packages()[which(installed.packages()[,1]=="rJava"),]['LibPath'] Ok ca serait super.
Mon besoin est de récuperer ce "chemin" dans un script sh et .bat. J'ai essayer : R CMD "installed.packages()[which(installed.packages()[,1]==\"rJava\"),]['LibPath']" Mais cela ne fonctionne pas. Y a-t-il un moyen ou un autre de recupérer ce chemin depuis une ligne de commande (hors de R) ? -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Le 14/04/2014 14:13, Nicolas Dumoulin a écrit :
Bonjour,
Le plus pratique est clairement de reposer sur l'installation du package R pour avoir la bibliothèque compilée pour chaque architecture. Pour récupérer l'emplacement d'installation, tu peux utiliser un truc du genre : installed.packages()[which(installed.packages()[,1]=="rJava"),]['LibPath']
Ok ca serait super. Mon besoin est de récuperer ce "chemin" dans un script sh et .bat. J'ai essayer : R CMD "installed.packages()[which(installed.packages()[,1]==\"rJava\"),]['LibPath']" Mais cela ne fonctionne pas. Y a-t-il un moyen ou un autre de recupérer ce chemin depuis une ligne de commande (hors de R) ? -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Le jeudi 17 avril 2014 17:27:39 Eric Chatellier a écrit :
Le 14/04/2014 14:13, Nicolas Dumoulin a écrit :
Bonjour,
Le plus pratique est clairement de reposer sur l'installation du package R pour avoir la bibliothèque compilée pour chaque architecture. Pour récupérer l'emplacement d'installation, tu peux utiliser un truc du genre : installed.packages()[which(installed.packages()[,1]=="rJava"),]['LibPath']
Ok ca serait super.
Mon besoin est de récuperer ce "chemin" dans un script sh et .bat.
J'ai essayer : R CMD "installed.packages()[which(installed.packages()[,1]==\"rJava\"),]['LibPath ']" Mais cela ne fonctionne pas.
Y a-t-il un moyen ou un autre de recupérer ce chemin depuis une ligne de commande (hors de R) ?
Rscript -e "installed.packages()[which(installed.packages()[,1]==\"rJava\"),] ['LibPath']" | tail -n 1 :-) -- Nicolas Dumoulin +33 (0)4.73.44.07.29 Ingénieur d'études - Irstea, LISC http://motive.cemagref.fr/people/nicolas.dumoulin
Le 18/04/2014 08:41, Nicolas Dumoulin a écrit :
Rscript -e "installed.packages()[which(installed.packages()[,1]==\"rJava\"),] ['LibPath']" | tail -n 1 :-) Ok merci.
Il va falloir que je me motive pour trouver l'équivalent windows ;) En attendant, je vais faire une release 1.1 fonctionnellement compatible avec les versions 1.0.x, donc en incluant les libs, mais sans chargement par défaut. Je vais quand même ajouter une propriété système pour activer le chargement des libs natives par nuiton-j2r pour pouvoir l'utiliser comme avant. Ce fonctionnement sera déprécié et supprimé dans la version majeure suivante. Cordialement, Eric Chatellier. -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Le 19/05/2014 10:07, Eric Chatellier a écrit :
Le 18/04/2014 08:41, Nicolas Dumoulin a écrit :
Rscript -e "installed.packages()[which(installed.packages()[,1]==\"rJava\"),] ['LibPath']" | tail -n 1 :-) Ok merci.
Il va falloir que je me motive pour trouver l'équivalent windows ;) J'ai fini par réussir à utiliser ce script, mais en Java ;)
Pour l'instant c'est dans le projet IsisFish : http://forge.codelutin.com/projects/isis-fish/repository/revisions/4101/entr... Cela appelle le script Rscript pour détecter au runtime où est installé rJava et cela modifie la variable système "java.library.path" au runtime. Donc plus besoin d'embarqué les binaires jri dans nuiton-j2r, cela utilise directement les binaires fournir par R. Il faudra sans doute backporter la fonctionnalité dans nuiton-j2r mais elle n'a pas encore été éprouvée. -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
participants (2)
-
Eric Chatellier -
Nicolas Dumoulin