¿Existe algo como el modo REPL interactivo de Python, pero para Java? ¿Para que pueda, por ejemplo, escribir InetAddress.getAllByName( localHostName )
en una ventana y obtener resultados de inmediato, sin toda esta pesadilla () vacía estática pública?
java
read-eval-print-loop
Yoni Roit
fuente
fuente
Respuestas:
editar Desde Java 9 hay JShell
La respuesta original sigue
También puede utilizar Groovy Console . Es una consola interactiva donde puedes hacer lo que quieras. Dado que Groovy también incluye clases de la plataforma central de Java, también podrá usar esas clases.
Se parece a esto:
fuente
System.exit()
) pero para la mayoría de los propósitos debería ser adecuado.class test{public static void test(){System.out.println('test')}}
Eclipse tiene una función para hacer esto, aunque no es un bucle. Se llama "Página de álbum de recortes". Supongo que se supone que la analogía es que tienes un álbum de recortes donde recolectas pequeños fragmentos de código.
De todos modos, para que funcione, abra un proyecto en Eclipse (su página de Scrapbook se asociará con un proyecto; a Eclipse le gusta cuando los proyectos poseen cosas).
Luego:
Ahora tienes una página de álbum de recortes. Escriba algún código, como tal vez este:
System.out.println(System.getProperties());
Luego, seleccione el texto con el mouse y presione Control-U o seleccione "Ejecutar" en el menú contextual. El código se ejecutará y la salida aparecerá en la consola.
También puede escribir una expresión, seleccionarla y seleccionar Mostrar en el menú contextual. Evaluará la expresión e imprimirá su tipo. Por ejemplo, si ejecuta Display on
1 + 2
se imprimirá(int) 3
.fuente
http://www.beanshell.org/
http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax
fuente
Puede utilizar las páginas de Eclipse Scrapbook.
En Eclipse cree una página de Scrapbook. En su proyecto, Nueva-> Otro-> Página de Scrapbook.
En el archivo, ingrese algún texto, selecciónelo y presione ctrl-U, y listo.
Para administrar sus importaciones, haga clic derecho en la página y seleccione Establecer importaciones, donde puede elegir importar un paquete o una sola clase. Esto es persistente y se guarda con la página.
fuente
Antigua pregunta, pero ahora hay una mejor respuesta (mayo de 2013): java-REPL! Está disponible en github y también en vivo en el sitio web de java-repl para realizar pruebas rápidas y únicas .
Si toma el código de git hub y lo ejecuta
ant
para generar los artefactos, puede facilitar su uso con un pequeño script como:Desde que encontré este proyecto, probablemente lo use 5 veces al día. ¡Disfrutar!
fuente
Parece que nadie mencionó todavía que Java (6, 7) incluye una consola REPL llamada
jrunscript
. Es independiente del lenguaje (por lo que se puede usar con Jython, JRuby, etc.). Tiene como valor predeterminado JavaScript (Rhino), que también está incluido de forma predeterminada, y al igual que los otros idiomas, puede acceder a todos los paquetes / objetos disponibles en la ruta de clases.fuente
¡Es parte de OpenJDK 9!
Se ha lanzado un REPL llamado JShell (desarrollado por Oracle) como parte de JDK 9.
Simplemente descargue JDK 9 y ejecútelo
bin/jshell
.Recursos
fuente
Como alternativa a Groovy, pruebe Beanshell: http://www.beanshell.org/
Es más parecido a Java y le permite utilizar la sintaxis de Java directamente.
fuente
Jython es una implementación de Python que le permite inspeccionar e interactuar con objetos Java.
fuente
Java-REPL de Albert Latacz funciona bien.
Puede probarlo directamente desde su navegador aquí: http://www.javarepl.com/term.html
El código fuente está disponible aquí y tiene un complemento Intelli-J decente.
https://github.com/albertlatacz/java-repl
fuente
Clojure proporciona un REPL que puede usar.
fuente
La maravillosa consola te permite hacer eso. En realidad, estaba destinado a probar y probar código maravilloso, pero dado que groovy es un superconjunto de Java, también permite cosas simples de Java.
Acabo de ingresar esto en la consola:
y presione CTRL-R, luego regresó:
fuente
Scala también ofrece una consola interactiva. Pude usarlo para obtener un resultado para la expresión en su pregunta al calificar completamente InetAddress, como en:
fuente
Mientras que JRuby , BeanShell , REPL de Julian Fleischer están ahí, el REPL de Albert Latacz parece ser el último y activo.
Lo intenté con una definición de clase simple, funciona bien.
fuente
Para las personas con acceso a Mathematica, JLink les permite acceder a Java y script con código de Mathematica:
Presiona Shift-Enter para evaluar y obtienes
Luego puede usar la función Map de Mathematica para llamar
toString
a los objetos devueltos:para obtener el resultado (o para usar la sintaxis menos oscura
Map[Function[obj, obj@toString[]], %]
):Si empieza a tomarse en serio esto, querrá leer el tutorial de Todd Gayley en http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html .
fuente
Si ya conoces Groovy (lo que supongo que sí, ya que mencionaste la Consola Groovy), usa groovysh o groovyConsole, que se incluyen en la distribución Groovy. Si tiene jarras personalizadas que desea importar, puede escribir un archivo por lotes que inicie groovysh / groovyConsole con los agregados a la ruta de clases. También puedes hacer esto
desde dentro de la cáscara para cargar otros frascos.
Solía usar Jython hace varios años para hacer exactamente lo que me pide. Como parte de mi script de compilación, generé un archivo jython.bat y .py personalizado que incluía la ruta de clase completa para el proyecto en el que estaba trabajando. De esa manera, cuando inicié Jython, tendría todo el código disponible y aparecería Spring para permitirme manipular cosas en el sistema en vivo. Puedes hacer lo mismo con Groovy, JRuby, BeanShell, etc.
fuente
puede escribir java usando jruby http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby
fuente
Sí, existe: http://www.scravy.de/blog/2012-02-27/a-read-eval-print-loop-for-java.htm
fuente
La mayoría de los IDE tienen una ventana llamada algo así como "modo inmediato" que le permitirá evaluar el código Java sobre la marcha.
fuente
Podrías echar un vistazo a BlueJ que es un entorno de desarrollo interactivo de Java destinado a la enseñanza de OOP en lugar de un IDE completo como Eclipse o NetBeans. De todos modos, es divertido jugar con él.
Puede verlo en acción en YouTube en una serie de tutoriales de Java.
fuente
DrJava es un IDE educativo que incluye un panel REPL.
También hay un complemento de Eclipse, pero no me ha funcionado. Creo que no se ha actualizado en un tiempo. Entonces, lo que generalmente hago es mantener una ventana de DrJava abierta para las preguntas "¿Qué sucede si hago esto?".
EclipseShell también puede ser bueno, pero aún no lo he usado.
fuente
Beanshell 2
fuente
Existe un IDE simple llamado DrJava que tiene una consola de interacciones. Funciona exactamente como esperaba. Simplemente cargue un archivo y comience a interactuar con los objetos que contiene.
fuente
Hay un REPL en línea: http://www.javarepl.com/console.html
Escribiendo más para alcanzar el límite de caracteres ...
fuente
Para java 8, existe nudge4j. ver https://github.com/lorenzoongithub/nudge4j
... y la belleza es que puedes probar tu aplicación desde el Browsert
fuente
JPad es un bloc de notas de Java con un REPL incorporado:
También es inteligente para descargar colecciones, listas, mapas, etc. y permite representarlos como una tabla o gráfico:
fuente
Java 9 proporciona JShell.
fuente
Jython, JIRB para JRuby, Groovy (groovyconsole et al) y Beanshell son todas opciones viables.
He usado
InteractiveConsole
para Jython, realmente funcionó muy bien en la aplicación.fuente