2009-06-06 12 views
38

Sono abbastanza nuovo a Java e vorrei imparare Java utilizzando una shell interattiva, come ho fatto con Python utilizzando IPython.di Java come ipython

ho provato un paio di shell interattive, come ad esempio BeanShell, Jython, jythonconsole e JyConsole. Molti di questi non hanno il completamento delle tabulazioni come fa IPython. C'è qualcosa di simile a IPython per java?

+4

+1 perché non sono sicuro che esista una shell di questo tipo, ma sarebbe utile. (Ho quasi postato BeanShell prima che prendessi un momento per leggere il secondo paragrafo.) –

risposta

2

quale beanshell hai usato? quello vecchio ? Guardate this Essi sostengono di fornire il completamento

+0

Ora sto usando eclipse invece di netbean, dato che sto anche codificando altri linguaggi come python e C++. Ho appena usato beanshell da http://www.beanshell.org/ – Ross

7

Probabilmente non sarà possibile ottenere molto uso di utilizzo di Java in modo interattivo, come che la lingua è fortemente orientata verso la compilazione. Il percorso migliore probabilmente avrà solo un IDE piacevole, come eclipse, e inizierà con i breakpoint e il debugger.

+5

In realtà uso Beanshell abbastanza spesso, ultimamente beanshell 2 (http://code.google.com/p/beanshell2/). Tuttavia, non ho trovato una varietà con il completamento del codice. –

+0

Non intendevo dire che è impossibile, o addirittura non utile, usare Java in modo interattivo. Ho usato e apprezzato alcuni interpreti C++ per vari compiti. Ma poiché questi linguaggi non sono progettati con questo tipo di utilizzo in mente, non si ottiene lo stesso livello di utilità come si farebbe con linguaggi più interattivi come Python. – SingleNegationElimination

+0

Se hai provato beanshell, estende java ad un linguaggio di scripting più simile a quello in cui non devi dichiarare il tipo di variabile. Ci sono molti più vantaggi come la chiusura, ma ho appena iniziato a usarlo. – Ross

1

Penso di trovare un'alternativa abbastanza buona: JPype. JPype consente ai programmi python di avere pieno accesso alle librerie di classi java. Con JPype e IPython, posso usare tutte le funzioni java pur avendo un bel tab completamento per le classi java (dopo che la classe è stata importata)

8

Se vuoi un'opzione interattiva da usare con java prova ad usare Dr Java o JGrasp , entrambi forniscono la stessa opzione interattiva di IDLE per Python, oltre ad essere un IDE completamente basato con un debugger, preferisco JGrasp a Dr Java. Hanno anche un Dr Python quindi se ti abitui a Dr Java puoi anche usarlo con Python.

anche Dr Java ha una caratteristica in cui è possibile selezionare da principiante, intermedio, avanzato e completo Java al fine di limitare ciò che si può fare con la lingua come si impara. Non uso mai questa caratteristica perché non vedo il punto di limitare le parti della lingua, ma suppongo che alcuni insegnanti lo utilizzino mentre insegnano ai loro studenti.

1

Anche se sono d'accordo con TokenMacGuy dicendo:

Il percorso migliore sarà probabilmente solo ottenere un buon IDE, come Eclipse
Come Im anche provenienti da ambiente in cui strumento come shell interattiva era essenziale. Quindi posso anche suggerirti di utilizzare semplicemente strumenti come ipython direttamente da jython/JPype.

che può essere raggiunto o utilizzando JPype come suggerito da i-Freaker che attraverso Jython:

  1. Getting jython (verificarne il funzionamento jython -c 'import os; print "Python meets %s" % os.name')
  2. Getting readrline (Nel caso in cui Mac sudo port install readline)
  3. Fallowing i passaggi da this blog o jython documentation per rendere j ava-readline lavoro
  4. in modo da avere jython con readline ormai (Ctrl+R nei risultati Jython in reverse-i-search come si sa dalla shell). Al fine di ottenere scheda di completamento, come si sa che formano ipython incolti i passi da this blog
  5. Quello dovrebbe essere! Se hai bisogno di una patch per ipython 0.10 puoi get it from here.
8

groovysh:

http://groovy.codehaus.org/Groovy+Shell

  • Rich cross-piattaforma di editing di modifica-line, di storia e di completamento grazie a JLine.
  • Colori ANSI (prompt, tracce di eccezioni, ecc.).
  • Semplice, ma robusto, sistema di comando con guida in linea, supporto alias utente e altro.
  • supporto Profilo utente