Interprite un morcaux de code dans une application java
Fermé
soubonoi
Messages postés
48
Date d'inscription
dimanche 24 septembre 2006
Statut
Membre
Dernière intervention
20 décembre 2016
-
2 sept. 2015 à 00:51
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 4 sept. 2015 à 18:31
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 4 sept. 2015 à 18:31
A voir également:
- Interprite un morcaux de code dans une application java
- Application mobile - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Application java - Télécharger - Langages
- Code ascii de a - Guide
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 2/09/2015 à 05:35
Modifié par KX le 2/09/2015 à 05:35
Bonjour,
Pour interpréter un morceau de code Java il faudrait d'abord le compiler, c'est un peu lourd. Plus simplement tu pourrais écrire tes formules en JavaScript et utiliser la classe ScriptEngine pour l'interpréter.
Evidemment, tu pourras écrire le script dynamiquement et gérer autant de variables que tu veux, ainsi qu'utiliser la classe Math de JavaScript.La confiance n'exclut pas le contrôle
Pour interpréter un morceau de code Java il faudrait d'abord le compiler, c'est un peu lourd. Plus simplement tu pourrais écrire tes formules en JavaScript et utiliser la classe ScriptEngine pour l'interpréter.
package test; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class Test { public static void main(String[] args) throws ScriptException { ScriptEngine js = new ScriptEngineManager().getEngineByName("js"); String script = "a=2; b=3; c=5; a+b*c"; double result = (double) js.eval(script); System.out.println(result); // 17.0 } }
Evidemment, tu pourras écrire le script dynamiquement et gérer autant de variables que tu veux, ainsi qu'utiliser la classe Math de JavaScript.La confiance n'exclut pas le contrôle
4 sept. 2015 à 12:17
aussi la fonction getEngineByName() prendre en paramètre :"js" ou "javascript" ou "nashorn"
4 sept. 2015 à 13:15
Exemple :
Pour le getEngineByName, ce sont des alias, au final c'est le même ScriptEngine qui sera utilisé (Oracle Nashorn). Tu peux afficher les ScriptEngine disponibles et leurs alias avec ce code (ça peut changer d'une version à l'autre de Java).
Chez moi ça donne ça :
Donc que tu utilises "js", "javascript", ou "nashorn", c'est pareil.
Modifié par soubonoi le 4/09/2015 à 18:10
ou bien montrer mois comment passer au scripte de l'etulisateur un tablaux qui port les champs de lenregistrement courant de la table emploiyer par exemple.
et merci d'avance.
4 sept. 2015 à 18:31
Tu peux créer des variables dans ton script, autant que tu veux, et avec n'importe quel nom. Si par exemple tu as dans ta table EMPLOYEUR des colonnes qui s'appellent NOM et ADRESSE, tu peux autoriser l'utilisateur à manipuler des variables nom et adresse que tu rempliras.
Exemple :
Remarque : il faudra faire attention avec les valeurs récupérées en base de données, si elles contiennent des apostrophes cela va casser le String initScript, et donner un peu n'importe quoi.
Exemple : si et tu aurais, qui vaut
C'est un script qui va planter. Pour éviter ça tu peux faire par exemple un sur chaque paramètre que tu ajoutes au script (nom et adresse dans l'exemple), ce qui donnerait l'apostrophe sera bien conservée et le script sera correct.