2009-06-29 5 views

Répondre

3

Non. Java est un langage compilé, donc ce comportement est impossible à moins que vous n'invoquiez d'abord le compilateur. (Et il n'y a aucune garantie qu'une machine avec Java ait le compilateur Java.)

3

Peut-être serait-il plus facile de commencer à chercher des langages de script, qui sont très bien supportés par la machine virtuelle Java.

Groovy est le premier à venir à l'esprit, il a une syntaxe similaire à Java.

8

Essayez d'utiliser BeanShell. À partir de la page d'introduction:

Qu'est-ce que BeanShell?

BeanShell est un petit interprète libre, la source intégrable Java avec l'objet fonctionnalités du langage de script, écrit en Java . BeanShell dynamiquement exécute la syntaxe Java standard et l'étend avec des fonctionnalités courantes de script telles que les types lâches, les commandes et les fermetures de méthodes telles que celles en Perl et JavaScript.

Vous pouvez utiliser BeanShell interactive pour l'expérimentation Java et le débogage ainsi que d'étendre vos applications de nouvelles façons. Java script prête lui-même pour une grande variété d'applications, y compris le prototypage rapide, l'extension de script utilisateur, moteurs de règles, la configuration, les tests, déploiement dynamique, les systèmes embarqués, et même l'éducation Java.

BeanShell est petit et intégrable, donc vous pouvez appeler BeanShell de vos applications Java pour exécuter du code Java dynamiquement lors de l'exécution ou de fournir dans vos applications d'extensibilité. Vous pouvez également utiliser des scripts BeanShell autonomes pour manipuler les applications Java ; travailler avec Java objets et API dynamiquement. Depuis BeanShell est écrit en Java et fonctionne dans la même machine virtuelle que votre application, vous pouvez passer librement des références à des objets « live » dans des scripts et retourner eux comme des résultats.

En bref, BeanShell est dynamiquement interprété Java, plus un langage de script et environnement flexible tout roulé dans un emballage propre.

1

Eventuellement. Cela peut être fait de façon non triviale en utilisant le compiler API. Mais vous êtes vraiment mieux d'écrire une configuration XML qui contrôle votre programme, plutôt que d'autoriser l'exécution de code arbitraire dans un fichier texte.

0

Vous pouvez utiliser Janino pour compiler votre fichier * .java généré. Après avoir compilé votre fichier, vous pouvez charger le fichier * .class et appeler une méthode par réflexion.

Questions connexes