Existe algo como o modo REPL interativo do python, mas para o Java? Para que eu possa, por exemplo, digitar InetAddress.getAllByName( localHostName )
em uma janela e obter resultados imediatamente, sem toda essa coisa de void nightmare () public static?
java
read-eval-print-loop
Yoni Roit
fonte
fonte
Respostas:
editar Desde Java 9 há JShell
A resposta original segue
Você também pode usar o Console Groovy . É um console interativo onde você pode fazer o que quiser. Como o Groovy também inclui classes da plataforma java principal, você também poderá usar essas classes.
Se parece com isso:
fonte
System.exit()
), mas para a maioria dos propósitos deve ser adequado.class test{public static void test(){System.out.println('test')}}
O Eclipse tem um recurso para fazer isso, embora não seja um loop. É chamada de "Página do álbum de recortes". Suponho que a analogia é que você tem uma página de recados onde coleta pequenos trechos de código.
De qualquer forma, para fazer funcionar, abra um projeto no Eclipse (sua página do Scrapbook será associada a um projeto - o Eclipse gosta quando os projetos são donos das coisas).
Então:
Agora você tem uma página de scrapbook. Digite algum código, como talvez este:
System.out.println(System.getProperties());
Em seguida, selecione o texto com o mouse e pressione Control-U ou selecione "Executar" no menu de contexto. O código será executado e a saída aparecerá no console.
Você também pode digitar uma expressão, selecioná-la e selecionar Exibir no menu de contexto. Ele avaliará a expressão e imprimirá seu tipo. Por exemplo, rodar Display on
1 + 2
irá imprimir(int) 3
.fonte
http://www.beanshell.org/
http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax
fonte
Você pode usar as páginas do Scrapbook do Eclipse.
No Eclipse, crie uma página do Scrapbook. Em seu projeto, página Novo-> Outro-> Livro de recortes.
No arquivo, digite algum texto, selecione-o e aperte ctrl-U, e pronto.
Para gerenciar suas importações, clique com o botão direito na página e selecione Definir Importações, onde você pode escolher importar um pacote ou uma única classe. Isso é persistente e é salvo com a página.
fonte
Pergunta antiga, mas há uma resposta melhor agora (maio de 2013) - java-REPL! Está disponível no github e também disponível ao vivo no site java-repl para testes rápidos e pontuais.
Se você pegar o código do hub git e executar
ant
para gerar os artefatos, poderá torná-lo fácil de usar com um pequeno script como:Desde que encontrei este projeto, provavelmente o uso 5 vezes ao dia. Aproveitar!
fonte
Parece que ninguém mencionou ainda que Java (6, 7) vem com um console REPL chamado
jrunscript
. É agnóstico de linguagem (portanto, pode ser usado com Jython, JRuby etc.). O padrão é JavaScript (Rhino), que também é empacotado por padrão e, como as outras linguagens, você pode acessar todos os pacotes / objetos disponíveis no classpath.fonte
Faz parte do OpenJDK 9!
Um REPL chamado JShell (desenvolvido pela Oracle) foi lançado como parte do JDK 9.
Basta fazer o download do JDK 9 e iniciar
bin/jshell
.Recursos
fonte
Como alternativa ao Groovy, experimente o Beanshell: http://www.beanshell.org/
É mais semelhante ao Java e permite que você use a sintaxe Java diretamente.
fonte
Jython é uma implementação python que permite inspecionar e interagir com objetos Java.
fonte
Java-REPL de Albert Latacz funciona bem.
Você pode experimentá-lo diretamente de seu navegador aqui: http://www.javarepl.com/term.html
O código-fonte está disponível aqui e tem um plug-in Intelli-J decente.
https://github.com/albertlatacz/java-repl
fonte
Clojure fornece um REPL que você pode usar.
fonte
O console bacana permite que você faça isso. Na verdade, a intenção era tentar e testar o código groovy, mas como o groovy é um superconjunto do Java, ele também permite coisas simples do Java.
Acabei de inserir isso no console:
e apertou CTRL-R, então retornou:
fonte
Scala também oferece um console interativo. Consegui usá-lo para obter um resultado para a expressão em sua pergunta qualificando totalmente o InetAddress, como em:
fonte
Enquanto JRuby , BeanShell , REPL de Julian Fleischer estão lá, o REPL de Albert Latacz parece ser o mais recente e ativo.
Tentei com uma definição de classe simples, funciona bem.
fonte
Para quem tem acesso ao Mathematica, o JLink permite acessar Java e script com o código do Mathematica:
Pressione Shift-Enter para avaliar e você obterá
Então você pode usar a função Map do Mathematica para chamar
toString
os objetos retornados:para obter o resultado (ou usar a sintaxe menos obscura
Map[Function[obj, obj@toString[]], %]
):Se você começar a levar isso a sério, leia o tutorial de Todd Gayley em http://reference.wolfram.com/mathematica/JLink/tutorial/Overview.html .
fonte
Se você já conhece Groovy (o que presumo que conheça, já que mencionou o Console Groovy), basta usar groovysh ou groovyConsole, que estão incluídos na distribuição Groovy. Se você tiver jars personalizados que deseja importar, você pode escrever um arquivo em lote que inicia groovysh / groovyConsole com aqueles adicionados ao caminho de classe. Você também pode fazer isso
de dentro do shell para carregar outros jars.
Eu costumava usar Jython há vários anos para fazer exatamente o que você está pedindo. Como parte do meu script de construção, gerei um arquivo jython.bat e .py personalizado que incluía o classpath completo para o projeto em que estava trabalhando. Dessa forma, quando eu iniciei o Jython, ele teria todo o código disponível e traria o Spring para me permitir mexer nas coisas no sistema ativo. Você pode fazer a mesma coisa com Groovy, JRuby, BeanShell, etc.
fonte
você pode criar um script java usando jruby http://kenai.com/projects/jruby/pages/CallingJavaFromJRuby
fonte
Sim, existe: http://www.scravy.de/blog/2012-02-27/a-read-eval-print-loop-for-java.htm
fonte
A maioria dos IDE tem uma janela chamada algo como "modo imediato" que permitirá que você avalie o código Java em tempo real.
fonte
Você pode dar uma olhada no BlueJ, que é um ambiente de desenvolvimento Java interativo destinado ao ensino de OOP, em vez de um IDE completo como Eclipse ou NetBeans. É divertido brincar de qualquer maneira.
Você pode vê-lo em ação no YouTube em uma série de tutoriais Java.
fonte
DrJava é um IDE educacional que inclui um painel REPL.
Também existe um plugin do Eclipse, mas não funcionou para mim. Acho que não é atualizado há algum tempo. Portanto, o que geralmente faço é manter uma janela do DrJava aberta para as perguntas "o que acontece se eu fizer isso".
EclipseShell pode ser bom também, mas ainda não usei.
fonte
Beanshell 2
fonte
Existe um IDE simples chamado DrJava que possui um console Interactions. Funciona exatamente como eu esperava. Basta carregar um arquivo e começar a interagir com os objetos nele.
fonte
Há um REPL online: http://www.javarepl.com/console.html
Digitando mais para atingir o limite de caracteres ...
fonte
Para java 8, há nudge4j. consulte https://github.com/lorenzoongithub/nudge4j
... e a beleza é que você pode pilotar seu aplicativo a partir do navegador
fonte
JPad é um scratchpad java com REPL integrado:
Também é inteligente para despejar coleções, listas, mapas etc. e permite renderizá-los como uma tabela ou gráfico:
fonte
Java 9 está fornecendo o JShell.
fonte
Jython, JIRB para JRuby, Groovy (groovyconsole et al) e Beanshell são opções viáveis.
Eu usei o
InteractiveConsole
para Jython, ele realmente funcionou bem no aplicativo.fonte