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

Langage Java Discussion :

Interpretation code Java dans un fichier


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 40
    Points
    40
    Par défaut Interpretation code Java dans un fichier
    Bonjour,
    je cherchais un moyen d'interpréter un code Java qui serait écrit dans un fichier de configuration (plat). j'ai beau cherché mais aucune solution n'apparait.
    le but est de pouvoir ajouter des cas particuliers...

    tout ça, évidemment au delà des problèmes de sécurité...


    Merci

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Je ne sais pas si j'ai bien compris ta demande mais est-ce que ceci ne conviendrait pas ? (il manque des bouts je sais).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

  3. #3
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par jdar Voir le message
    interpréter un code Java qui serait écrit dans un fichier de configuration (plat)
    Euh Tu veux dire quoi par là ?

    Genre tu as un fichier .txt qui contient une classe Java et tu veux qu'il l'interprète ? Une classe Java c'est dans un fichier .java et c'est tout. Mais je ne suis pas du tout sur d'avoir compris.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Bah il n'est interdit nulle part de mettre une extension quelconque autre que .java pour du code java .

    Par contre oui, fichier de configuration plat, peut laisser perplexe.

  5. #5
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Bah il n'est interdit nulle part de mettre une extension quelconque autre que .java pour du code java .
    Ah bon .. ah bah je découvre quelque chose alors.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    pour simplifier,
    je voudrais externaliser une partie du code en un fichier texte (qui ne necessite pas la recompilation de toutes les autres sources).
    il s'agit de réaliser une configuration déjà complexe : des règles a appliquer et différents mapping entre les attributs de 2 objets, et en plus il faudrait prévoir des cas particuliers supplémentaires selon de l’état du système à l'instant T (en gros difficile a prévoir en configuration).

    donc le but est de faire du code mais externalisé dans un fichier non compilé à l'avance que à chaque fois qu'il est modifié, les modifications prennent tout de suite. ce bout de code prend un objet en entrée, et ressort l'objet voulu de l'autre coté.

    quelque chose comme Groovy (je ne sais pas si c'est la solution unique)

  7. #7
    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,



    Pourquoi ne pas passer par du JavaScript via le package javax.script

    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
    20
    21
    22
    23
     
    public class MaClasse {
    	public void hello(String name) {
    		System.out.println("Hello " + name + " !");
    	}
     
    	public static void main(String[] args) throws Exception {
    		// On crée l'instance qu'on va manipuler par JavaScript
    		MaClasse instance = new MaClasse();
     
    		// On crée le Manager de Script
    		ScriptEngineManager manager = new ScriptEngineManager();
    		// On demande le moteur "Javascript" (en standard dans Java 6)
    		ScriptEngine engine = manager.getEngineByName("javascript");
     
    		// On déclare notre instance dans le moteur JS :
    		engine.put("instance", instance);
     
    		// On appelle du code JavaScript
    		// (En string ici, mais on peut lire un fichier)
    		engine.eval("instance.hello('JavaScript !');");
    	}
    }

    a++

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Ah bon .. ah bah je découvre quelque chose alors.
    Non a mon avis, j'ai joué sur les mots

    Je voulais simplement dire que l'extension n'a d'importance que pour que certains programme detecte que c'est un fichier qui lui convient (ca je n'ai surement pas besoin de le dire tu le sais surement .
    Evidement javac, doit surement s'attendre a un .java donc forcement ca n'ira pas si l'extension est .toto (oui ca n'ira pas je confirme)

    Sinon jdar, ca devient trop chaud pour moi ^^

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Pourquoi ne pas passer par du JavaScript
    Ca interprete aussi le java tout court ca ? (parce que je pense qu'est c'est plutot ce qu'il demande, sans vouloir faire mon emmerdeur

  10. #10
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Non a mon avis, j'ai joué sur les mots

    Je voulais simplement dire que l'extension n'a d'importance que pour que certains programme detecte que c'est un fichier qui lui convient (ca je n'ai surement pas besoin de le dire tu le sais surement .
    Evidement javac, doit surement s'attendre a un .java donc forcement ca n'ira pas si l'extension est .toto (oui ca n'ira pas je confirme)

    Sinon jdar, ca devient trop chaud pour moi ^^
    Ah bah tu sais qu'à cause de toi j'étais en train de réaliser mes nouvelles classes avec des .turlututu



    Est-ce que Groovy pourrait répondre à son problème vu que c'est du scripting en Java ?

    Edit : Bon désolé j'avais pas lu la fin de ton dernier post jdar.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par =adiGuba Voir le message
    Pourquoi ne pas passer par du JavaScript via le package javax.script
    est ce qu'avec ceci, je peux juste écrire ma méthode qui récupère un objet en entrée et me ressort l'objet désiré? (script en Java évidemment)

    Citation Envoyé par Robin56 Voir le message
    Est-ce que Groovy pourrait répondre à son problème vu que c'est du scripting en Java ?
    est ce que Groovy, permet de prendre des objets en parametre et de renvoyer des objets à la classe appelante, ou il se contente seulement de faire des traitements indépendants?

  12. #12
    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
    Citation Envoyé par wax78 Voir le message
    Ca interprete aussi le java tout court ca ? (parce que je pense qu'est c'est plutot ce qu'il demande, sans vouloir faire mon emmerdeur
    Par défaut il n'y a que JavaScript.
    Mais l'API correspond à un moteur de scripting qui pourrait utiliser n'importe quel langage. Il me semble avoir vu une solution qui utilisait directement le langage Java via l'API "JavaCompiler" cité plus haut, mais ce n'est pas standard et cela impose d'avoir un JDK (le "JavaCompiler" n'est pas disponible avec un simple JRE).


    Enfin, si l'objectif est d'utiliser un langage de script, autant utiliser du JavaScript ca éviteras toutes les lourdeurs de Java qui n'est définitivement pas fait pour cela

    Citation Envoyé par jdar Voir le message
    est ce qu'avec ceci, je peux juste écrire ma méthode qui récupère un objet en entrée et me ressort l'objet désiré? (script en Java évidemment)
    Oui tu peux faire tout ce que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	// Définition de la fonction :
    	engine.eval("function mafonction(name) { return 'Hello ' + name; }");
    Ensuite tu peux appeler ta fonction en pur JavaScript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object result = engine.eval("mafonction('JavaScript');");
    Ou même directement en Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	Invocable invocable = (Invocable)engine;
    	result = invocable.invokeFunction("mafonction", "Java");
    Le "seul" problème, c'est que tu devras caster les valeurs de retour...



    Après si tu veux faire des interactions plus poussés entre Java et JavaScript, tu peux jeter un coup d'oeil à cette doc : Scripting Java



    Citation Envoyé par jdar Voir le message
    est ce que Groovy, permet de prendre des objets en parametre et de renvoyer des objets à la classe appelante, ou il se contente seulement de faire des traitements indépendants?
    Je ne connais pas Groovy, mais cela doit surement être possible aussi...



    a++

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Merci,
    je suis en train d'étudier les 2 possibilités Groovy, et Javascript.
    je posterai ici mon choix final.
    pour info : j'ai trouvé un lien avec quelques exemples ici (ca pourrait aider ceux qui s'interessent à ce genre de scripting)

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Voila, donc le choix a été finalement porté sur Groovy (ressemblance de langages, rapidité du traitement...) en plus d'une compilation prévue à chaque modification, donc encore plus de rapidité.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rediriger le résultat d'un code java dans un fichier xml
    Par doudou7777 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/02/2014, 16h45
  2. Réponses: 0
    Dernier message: 07/10/2009, 15h03
  3. Rediriger le résultat d'un code java dans un fichier texte
    Par ysahel dans le forum Général Java
    Réponses: 9
    Dernier message: 27/03/2009, 15h57
  4. code java dans fichier texte
    Par nicotine002 dans le forum Langage
    Réponses: 7
    Dernier message: 23/01/2007, 11h48
  5. [Forms 9i] Integrer du code java dans un bloc PL/SQL
    Par mohmanjdo dans le forum PL/SQL
    Réponses: 2
    Dernier message: 07/02/2006, 14h54

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