2009-04-24 18 views
66

Ho passato molto tempo a programmare in Java di recente, e una cosa che mi manca dai linguaggi di scripting era la possibilità di testarli in una console.Esiste una console interattiva simile a Python per Java?

Per testare rapidamente un programma java, devo modificare un file, quindi trasformarlo in bytecode ed eseguirlo. Anche usando un IDE, perde il suo divertimento dopo la 372 ° volta.

Mi piacerebbe sapere se c'è un prodotto là fuori che presenta qualcosa come una console interattiva (scommetto che hai bisogno di un compilatore JIT) e un completamento automatico (con la relessità, suppongo sia possibile).

Forse è qualcosa di molto comune che io proprio non lo so, o qualcosa del tutto impossibile, ma la sua peggiore chiedere :-)

risposta

35

Non del tutto, perché Java non è ben definito, senza la struttura di una classe e presto. Ma alcune approssimazioni ravvicinate sono in Groovy, Clojure, Scala e Bean Shell.

+5

mi piace BeanShell. –

+1

concordato. Io uso BeanShell attraverso [JDE] (http://jdee.sourceforge.net/) in emacs; è tutt'altro che perfetto, ma fornisce una console interattiva e un supporto di completamento decente, sia nella console che durante la modifica dei normali file Java. –

+0

In effetti, è molto primitivo ma molto meglio di niente. Grazie a te, e grazie ai ragazzi che lo hanno codificato :-) –

2

Potresti essere interessato a Groovy.

0

Ho occasionalmente incontrato lo stesso problema e ho una soluzione parziale. Tengo un file (come diceva Charlie Martin, Java ha bisogno dei suoi contesti di classe) che è poco più di un programma di test. In una seconda finestra - una console - ho uno script che eseguo che controlla l'ora di modifica del file sorgente ogni due o due secondi. Quando vede la modifica della sorgente, la ricompila (di solito sto giocherellando con C, ma l'ho fatto anche con Java) ed esegue il risultato.

Non è una soluzione eccezionale, ma è una soluzione rapida e ho trovato molto utile.

4

Un approccio che ho utilizzato in un certo grado di successo è eseguire il debug in Eclipse e utilizzare la visualizzazione dello schermo. Ciò che ti offre la visualizzazione del display è la possibilità di manipolare il codice attualmente in esecuzione nella JVM tramite l'esecuzione di istruzioni Java. Qualsiasi oggetto disponibile nel particolare punto di interruzione in cui ci si ferma è nell'ambito della visualizzazione di visualizzazione. Anche se questo non è esattamente quello che stai cercando, fornisce alcune delle funzionalità che un REPL fornisce per altri ambienti di programmazione. Vedere Debugging with the Eclipse Platform per ulteriori informazioni.

+0

Continuo a preferire il plug-in Scala IDE Eclipse, tuttavia quando non è consigliabile installare un plug-in, l'approccio Debug è il più vicino possibile a un interprete REPL, ovvero la "funzione" incorporata in Eclipse JDT. :) –

+0

Come visualizzare il valore di un'espressione dalla vista di visualizzazione? Ad esempio, se scrivo qualcosa del tipo: String s = "Hello World", s1 = s.substring (3, 5); come sapere il valore di s1? Non riesco a trovare un modo – zakmck

+0

Puoi evidenziare 's1', quindi aprire il menu di scelta rapida. C'è una voce sul display "Display" che farà ciò che vuoi. – laz

10

Stranamente, si ottiene una console interattiva con Jython! Non si ottiene molto più più simili a Python.

4

È anche possibile eseguire interprete interattivo Scala.

1

Jgrasp IDE dispone di una console interattiva in cui è possibile eseguire il test, io lo uso molto, e c'è anche una vista di debug che mostra variabel ecc. dopo averle deklare.

È opensoruce e si può ottenere una copia att http://www.jgrasp.org/

// Anders

+0

Ho guardato intorno a JGrasp, ma non sono riuscito a trovare una console interattiva – Casebash

2

È possibile utilizzare BeanShell per eseguire codice Java arbitrario. Se si desidera l'integrazione di Eclipse, EclipseShell dispone del supporto BeanShell.

9

Prova Dr Java's "Pannello di interazione".

+0

Sì, mi manca davvero. ora cambio in Eclipse ma non so come ottenere un pannello di interazione in Eclipse. –

3

JShell la standardizzazione in Java 9. JShell introduction

+0

Questo è il modo migliore per rispondere ora (da novembre) di quello che sembra dai voti, forse dovrebbe anche essere accettato @ e-satis. – TGar

Problemi correlati