有没有像python的交互式REPL模式,但对于Java?因此,我可以,例如,键入InetAddress.getAllByName( localHostName )
一个窗口,并立即获得结果,没有所有这些公共静态void nightmare()的事情?
您也可以使用Groovy Console.它是一个交互式控制台,您可以在其中执行所需操作.由于Groovy还包含来自核心java平台的类,因此您也可以使用这些类.
编辑
它看起来像这样:
Eclipse有一个功能,虽然它不是一个循环.它被称为"剪贴簿页面".我假设这个类比应该是你有一个剪贴簿,你收集一些代码片段.
无论如何,为了使它工作,在Eclipse中打开一个项目(你的Scrapbook页面将与一个项目相关联 - Eclipse在项目拥有的东西时喜欢它).
然后:
在项目导航器窗口中,选择项目中某处的文件夹.
选择菜单文件 - >新建 - >其他,或按Control-N.
选择Java - > Java Run/Debug - > Scrapbook Page.
点击"下一步",然后给它一个文件名,然后点击"完成".
现在你有一个剪贴簿页面.输入一些代码,就像这样:
System.out.println(System.getProperties());
然后用鼠标选择文本,或者按Control-U或从上下文菜单中选择"执行".代码将运行,输出将显示在控制台上.
您还可以键入表达式,选择它,然后从上下文菜单中选择"显示".它将评估表达式并打印其类型.例如,运行Display on 1 + 2
将打印(int) 3
.
BeanShell是一个小型,免费,可嵌入的Java源代码解释器,具有用Java编写的对象脚本语言功能.BeanShell动态执行标准Java语法,并使用常见的脚本编写方便性扩展它,例如松散类型,命令和方法闭包,如Perl和JavaScript中的那些.您可以交互式地使用BeanShell进行Java实验和调试,以及以新的方式扩展应用程序.脚本Java适用于各种各样的应用程序,包括快速原型设计,用户脚本扩展,规则引擎,配置,测试,动态部署,嵌入式系统,甚至Java教育.
http://www.beanshell.org/
http://www.beanshell.org/manual/syntax.html#Standard_Java_Syntax
您可以使用Eclipse Scrapbook页面.
在Eclipse中创建一个Scrapbook页面.在您的项目中,New-> Other-> Scrapbook页面.
在文件中,输入一些文本,选择它并点击ctrl-U,然后你去.
要管理导入,请右键单击页面并选择"设置导入",您可以在其中选择导入包或单个类.这是持久的,并随页面一起保存.
老问题,但现在有一个更好的答案(2013年5月) - java-REPL!它可以在github上获得,也可以在java-repl网站上直接进行快速一次性测试.
如果您获取git hub代码并运行ant
以生成工件,则可以使用以下小脚本轻松使用:
#!/bin/sh java -jar /home/rdahlgren/scripts/javarepl-dev.build.jar
自从找到这个项目后,我可能每天使用它5次.请享用!
似乎没有人提到Java(6,7)带有一个名为的REPL控制台jrunscript
.它与语言无关(因此可以与Jython,JRuby等一起使用).它默认为JavaScript(Rhino),默认情况下也捆绑在一起,与其他语言一样,您可以访问类路径上可用的所有包/对象.
Jython是一个python实现,它允许您检查Java对象并与之交互.
>>> from java.net import * >>> InetAddress.getAllByName("google.com") array(java.net.InetAddress,[google.com/209.85.171.100, google.com/74.125.45.100, google.com/74.125.67.100])
作为Groovy的替代方案,请尝试Beanshell:http://www.beanshell.org/
它更像Java,允许您直接使用Java语法.
一个名为JShell的REPL (由Oracle开发)已作为JDK 9的一部分发布.
只需下载JDK 9,即可启动bin/jshell
.
blogs.oracle.com:里面的JShell
DZone:Java 9(第2部分):JShell Step by Step
OpenJDK项目Kulla
Java Enhancement Proposal,JEP 222:jshell:Java Shell(读取 - 评估 - 打印循环)
Albert Latacz的 Java-REPL 效果很好.
您可以直接在浏览器中尝试:http: //www.javarepl.com/term.html
源代码在这里可用,它有一个不错的Intelli-J插件.
https://github.com/albertlatacz/java-repl
Clojure提供了一个可以使用的REPL.
在常规控制台可以让你做到这一点.它实际上是试图测试groovy代码,但由于groovy是Java的超集,它也允许普通的Java东西.
我刚进入控制台:
InetAddress.getAllByName('localhost')
并按CTRL-R,然后返回:
groovy> InetAddress.getAllByName('localhost') Result: [localhost/127.0.0.1]
Scala还提供交互式控制台.通过完全限定InetAddress,我能够使用它来获得问题中表达式的结果,如:
java.net.InetAddress.getAllByName("localhost")
虽然JRuby,BeanShell,Julian Fleischer的REPL在那里,Albert Latacz的REPL似乎是最新的和活跃的.
尝试使用简单的类定义,工作正常.
$ java -jar javarepl.jar Welcome to JavaREPL version 56 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_17) Type in expression to evaluate. Type :help for more options. java> public class Test { | public static void execute(String [] s) { | System.out.println(54353 + s[0]); | }} java> Test.execute(new String [] {"234343"}); 54353234343 java> System.exit(0);