Existe-t-il quelque chose comme le mode REPL interactif de python, mais pour Java? Pour que je puisse, par exemple, taper InetAddress.getAllByName( localHostName )
dans une fenêtre, et obtenir immédiatement des résultats, sans tout ce cauchemar public statique vide ()?
java
read-eval-print-loop
Yoni Roit
la source
la source
Réponses:
edit Depuis Java 9, il y a JShell
La réponse originale suit
Vous pouvez également utiliser Groovy Console . C'est une console interactive où vous pouvez faire ce que vous voulez. Étant donné que Groovy comprend également des classes de la plate-forme Java principale, vous pourrez également utiliser ces classes.
Cela ressemble à ceci:
la source
System.exit()
), mais pour la plupart des cas, elles devraient être adéquates.class test{public static void test(){System.out.println('test')}}
Eclipse a une fonctionnalité pour faire cela, bien que ce ne soit pas une boucle. C'est ce qu'on appelle une "page Scrapbook". Je suppose que l'analogie est censée être que vous avez un album dans lequel vous collectez de petits extraits de code.
Quoi qu'il en soit, pour le faire fonctionner, ouvrez un projet dans Eclipse (votre page Scrapbook va être associée à un projet - Eclipse aime quand les projets possèdent des choses).
Ensuite:
Vous avez maintenant une page d'album. Tapez du code, comme peut-être ceci:
System.out.println(System.getProperties());
Ensuite, sélectionnez le texte avec la souris et appuyez sur Ctrl-U ou sélectionnez "Exécuter" dans le menu contextuel. Le code s'exécutera et la sortie apparaîtra sur la console.
Vous pouvez également saisir une expression, la sélectionner et sélectionner Afficher dans le menu contextuel. Il évaluera l'expression et affichera son type. Par exemple, exécuter Display on
1 + 2
imprimera(int) 3
.la source
http://www.beanshell.org/
http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax
la source
Vous pouvez utiliser les pages Scrapbook Eclipse.
Dans Eclipse, créez une page Scrapbook. Dans votre projet, page Nouveau-> Autre-> Scrapbook.
Dans le fichier, entrez du texte, sélectionnez-le et appuyez sur ctrl-U, et c'est parti.
Pour gérer vos importations, faites un clic droit dans la page et sélectionnez Définir les importations, où vous pouvez choisir d'importer un package ou une seule classe. Ceci est persistant et est enregistré avec la page.
la source
Ancienne question, mais il y a une meilleure réponse maintenant (mai 2013) - java-REPL! Il est disponible sur github et également disponible en direct sur le site Web java-repl pour des tests ponctuels rapides.
Si vous récupérez le code git hub et exécutez
ant
pour générer les artefacts, vous pouvez le rendre facile à utiliser avec un petit script comme:Depuis que j'ai trouvé ce projet, je l'utilise probablement 5 fois par jour. Prendre plaisir!
la source
Il semble que personne n'ait encore mentionné que Java (6, 7) propose une console REPL appelée
jrunscript
. Il est indépendant du langage (peut donc être utilisé avec Jython, JRuby, etc.). Il utilise par défaut JavaScript (Rhino) qui est également fourni par défaut, et comme les autres langages, vous pouvez accéder à tous les packages / objets disponibles sur le chemin de classe.la source
Cela fait partie d'OpenJDK 9!
Un REPL appelé JShell (développé par Oracle) a été publié dans le cadre de JDK 9.
Téléchargez simplement JDK 9 et lancez-le
bin/jshell
.Ressources
la source
Comme alternative à Groovy, essayez Beanshell: http://www.beanshell.org/
Il ressemble plus à Java et vous permet d'utiliser directement la syntaxe Java.
la source
Jython est une implémentation python qui vous permet d'inspecter et d'interagir avec des objets Java.
la source
Java-REPL par Albert Latacz fonctionne bien.
Vous pouvez l'essayer directement depuis votre navigateur ici: http://www.javarepl.com/term.html
Le code source est disponible ici, et il a un plugin Intelli-J décent.
https://github.com/albertlatacz/java-repl
la source
Clojure fournit une REPL que vous pouvez utiliser.
la source
La console groovy vous permet de faire cela. Il était en fait destiné à essayer de tester du code groovy, mais comme groovy est un sur-ensemble de Java, il permet également des éléments Java simples.
Je viens de saisir ceci dans la console:
et appuyez sur CTRL-R, puis il est retourné:
la source
Scala propose également une console interactive. J'ai pu l'utiliser pour obtenir un résultat pour l'expression dans votre question en qualifiant complètement InetAddress, comme dans:
la source
Alors que JRuby , BeanShell , la REPL de Julian Fleischer sont là, la REPL d'Albert Latacz semble être la dernière et active.
Je l'ai essayé avec une définition de classe simple, fonctionne très bien.
la source
Pour les personnes ayant accès à Mathematica, JLink vous permet d'accéder à Java et au script avec du code Mathematica:
Appuyez sur Maj-Entrée pour évaluer, et vous obtenez
Ensuite, vous pouvez utiliser la fonction Map de Mathematica pour appeler
toString
les objets renvoyés:pour obtenir le résultat (ou pour utiliser la syntaxe moins obscure,
Map[Function[obj, obj@toString[]], %]
):Si vous commencez à devenir sérieux avec cela, vous voudrez lire le tutoriel de Todd Gayley à http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html .
la source
Si vous connaissez déjà Groovy (ce que je suppose que vous faites, puisque vous avez mentionné la console Groovy), utilisez simplement groovysh ou groovyConsole, qui sont inclus dans la distribution Groovy. Si vous avez des fichiers JAR personnalisés que vous souhaitez importer, vous pouvez soit écrire un fichier batch qui démarre groovysh / groovyConsole avec ceux ajoutés au classpath. Vous pouvez également le faire
depuis l'intérieur du shell pour charger d'autres bocaux.
J'utilisais Jython il y a plusieurs années pour faire exactement ce que vous demandez. Dans le cadre de mon script de construction, j'ai généré un fichier jython.bat et .py personnalisé qui incluait le chemin de classe complet pour le projet sur lequel je travaillais. De cette façon, quand j'ai commencé Jython, tout le code serait disponible et cela ferait apparaître Spring pour me permettre de manipuler les choses dans le système live. Vous pouvez faire la même chose avec Groovy, JRuby, BeanShell, etc.
la source
vous pouvez script java en utilisant jruby http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby
la source
Oui, il y a: http://www.scravy.de/blog/2012-02-27/a-read-eval-print-loop-for-java.htm
la source
La plupart des IDE ont une fenêtre appelée quelque chose comme "mode immédiat" qui vous permettra d'évaluer le code java à la volée.
la source
Vous pouvez jeter un œil à BlueJ qui est un environnement de développement Java interactif destiné à enseigner la POO plutôt que l'EDI complet comme Eclipse ou NetBeans. C'est plutôt amusant de jouer avec de toute façon.
Vous pouvez le voir en action sur YouTube dans une série de didacticiels Java.
la source
DrJava est un IDE éducatif qui comprend un volet REPL.
Il existe également un plugin Eclipse, mais cela n'a pas fonctionné pour moi. Je pense qu'il n'a tout simplement pas été mis à jour depuis un moment. Donc, ce que je fais généralement est de garder une fenêtre DrJava ouverte pour les questions «que se passe-t-il si je fais cela».
EclipseShell est peut-être bien aussi, mais je ne l'ai pas encore utilisé.
la source
Beanshell 2
la source
Il existe un IDE simple appelé DrJava qui possède une console Interactions. Cela fonctionne exactement comme je m'y attendais. Chargez simplement un fichier et commencez à interagir avec les objets qu'il contient.
la source
Il existe une REPL en ligne: http://www.javarepl.com/console.html
Taper plus pour atteindre la limite de caractères ...
la source
Pour java 8, il existe nudge4j. voir https://github.com/lorenzoongithub/nudge4j
... et la beauté est que vous pouvez piloter votre application depuis le navigateur
la source
JPad est un bloc-notes java avec un REPL intégré:
Il est également intelligent pour vider les collections, les listes, les cartes, etc. et permet de les rendre sous forme de tableau ou de graphique:
la source
Java 9 fournit le JShell.
la source
Jython, JIRB pour JRuby, Groovy (groovyconsole et al) et Beanshell sont toutes des options viables.
J'ai utilisé le
InteractiveConsole
pour Jython, cela fonctionnait vraiment bien dans l'application.la source