IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres Java Discussion :

[JRuby] [Java6] Utilisation de javax.script avec JRuby ?


Sujet :

Autres Java

  1. #1
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut [JRuby] [Java6] Utilisation de javax.script avec JRuby ?
    Salut !
    j'ai un probleme , j'essais d'utiliser JRuby dans mes application via javax.script (j'ai java6)
    avec javascript ca fonctionne , mais des que je veut utiliser ruby , avec ce code par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import javax.script.*;
     
    /**
     *
     * @author kedare
     */
    public class Main {
     
     
        public static void main(String[] args) throws ScriptException {
            // create a script engine manager
            ScriptEngineManager factory = new ScriptEngineManager();
            // create a JavaScript engine
            ScriptEngine engine = factory.getEngineByName("Jruby");
            // evaluate JavaScript code from String
            engine.eval("puts 'Hello World !'");
        }
     
    }
    j'ai le droit a : Exception in thread "main" java.lang.NullPointerException
    que faire ? comment faire fonctionner JRuby ?
    j'ai essayer de mettre Ruby dans getEngineByName , mais rien .. toujours cette erreur :/
    merci

  2. #2
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    je n'ai pas une grande expérience dans ce domaine mais a vu de nez l'erreur viens de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    engine.eval("puts 'Hello World !'");
    Ca voudrait dire que la variable "engine" est nulle.
    J'imagine que ca vient du fait que la ligne suivant retourne 'null' (trop fort !! )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ScriptEngine engine = factory.getEngineByName("Jruby");
    Ca voudrait dire que tu n'arrive pas a trouver l'engine "Jruby".
    Donc au lieu de repondre je vas poser des questions

    Est tu sur que l'engine "Jruby" existe bien ? Est ce que ca ne serait pas plutot "JRuby" (question con mais on ne sait jamais...)
    N'a tu pas un moyent d'obtenir la liste des engines disponible ?
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Par défaut Java 6 ne comporte qu'un moteur JavaScript (Mozilla Rhino en l'occurrence), donc je dirais que c'est tout à fait normal...


    Il est possible de déterminer tous les langages disponibles via la méthode ScriptEngineManager.getEngineFactories() (a noter qu'un langage peut avoir plusieurs noms).


    Si tu veux utiliser JRuby comme langage de script, il te faut deux éléments :
    • Un moteur de script compatible avec l'API javax.script, qui se chargera de la communication entre le code Java et le script tu en trouveras plusieurs ici : https://scripting.dev.java.net/
    • L'implémentation du script en lui-même (que tu trouvera également sur le site ci-dessus).



    a++

    PS : j'ai rajouté le tag [Java6] dans ton titre

  4. #4
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    j'ai pourtant bien mis tout ca (le jar JRuby + module JRuby pour javax.scripting)
    ok non c'est bon, c'etait jruby et pas Jruby

  5. #5
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par kedare
    j'ai pourtant bien mis tout ca (le jar JRuby + module JRuby pour javax.scripting)
    ok non c'est bon, c'etait jruby et pas Jruby
    Alors, n'oublie pas de passer ton sujet en résolu si ca fonctionne

  6. #6
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    j'ai une petite question aussi .. comment lire le script contenu dans un fichier ?
    merci

  7. #7
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    naïvement: to stockes le contenu du fichier dans une String et tu fais engine.eval(contenuFichier);
    Mais il y a surement plus fin
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 361
    Points : 429
    Points
    429
    Par défaut
    Tu peux passer un Reader à la fonction "eval" du ScriptEngine.
    Il suffit donc de créer un FileReader et de le passer en paramètre.

Discussions similaires

  1. Question sur l'utilisation de l'API javax.comm avec Windows 8.1
    Par Alain31320 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 30/01/2016, 12h35
  2. Signature XML (Xades) avec JRuby
    Par gsaly dans le forum Ruby
    Réponses: 1
    Dernier message: 26/07/2012, 15h22
  3. [Java6] Utiliser un script "Javascript" existant
    Par divxdede dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2008, 23h26
  4. [Lua] utiliser 1 script avec 2 application
    Par Clercq dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 26/03/2008, 14h33
  5. Réponses: 4
    Dernier message: 02/11/2004, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo