当前位置:  开发笔记 > 编程语言 > 正文

有没有像python的交互式REPL模式,但对于Java?

如何解决《有没有像python的交互式REPL模式,但对于Java?》经验,为你挑选了14个好方法。

有没有像python的交互式REPL模式,但对于Java?因此,我可以,例如,键入InetAddress.getAllByName( localHostName )一个窗口,并立即获得结果,没有所有这些公共静态void nightmare()的事情?



1> OscarRyz..:

您也可以使用Groovy Console.它是一个交互式控制台,您可以在其中执行所需操作.由于Groovy还包含来自核心java平台的类,因此您也可以使用这些类.

编辑

它看起来像这样:

Groovy的屏幕截图


对于那些懒得安装Groovy的人来说,这里有一个这个控制台的在线版本:http://groovyconsole.appspot.com.一些JDK库不可用(例如I/O和`System.exit()`)但是对于大多数目的来说它应该是足够的.

2> 小智..:

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.


我一直在使用Eclipse这么久但是不知道这个,谢谢!

3> bakkal..:

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



4> Matthew Farw..:

您可以使用Eclipse Scrapbook页面.

在Eclipse中创建一个Scrapbook页面.在您的项目中,New-> Other-> Scrapbook页面.

在文件中,输入一些文本,选择它并点击ctrl-U,然后你去.

要管理导入,请右键单击页面并选择"设置导入",您可以在其中选择导入包或单个类.这是持久的,并随页面一起保存.


有用的是,剪贴簿页面不是持久性会话,因此作为REPL并不能很好地工作.

5> Ron Dahlgren..:

老问题,但现在有一个更好的答案(2013年5月) - java-REPL!它可以在github上获得,也可以在java-repl网站上直接进行快速一次性测试.

如果您获取git hub代码并运行ant以生成工件,则可以使用以下小脚本轻松使用:

#!/bin/sh
java -jar /home/rdahlgren/scripts/javarepl-dev.build.jar

自从找到这个项目后,我可能每天使用它5次.请享用!



6> user268396..:

似乎没有人提到Java(6,7)带有一个名为的REPL控制台jrunscript.它与语言无关(因此可以与Jython,JRuby等一起使用).它默认为JavaScript(Rhino),默认情况下也捆绑在一起,与其他语言一样,您可以访问类路径上可用的所有包/对象.



7> speciousfool..:

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])



8> Tim Jansen..:

作为Groovy的替代方案,请尝试Beanshell:http://www.beanshell.org/

它更像Java,允许您直接使用Java语法.



9> aioobe..:
它是OpenJDK 9的一部分!

一个名为JShell的REPL (由Oracle开发)已作为JDK 9的一部分发布.

只需下载JDK 9,即可启动bin/jshell.

JShell的屏幕截图

资源

blogs.oracle.com:里面的JShell

DZone:Java 9(第2部分):JShell Step by Step

OpenJDK项目Kulla

Java Enhancement Proposal,JEP 222:jshell:Java Shell(读取 - 评估 - 打印循环)



10> Matthieu Cor..:

Albert Latacz的 Java-REPL 效果很好.

您可以直接在浏览器中尝试:http: //www.javarepl.com/term.html

源代码在这里可用,它有一个不错的Intelli-J插件.

https://github.com/albertlatacz/java-repl



11> Ande TURNER..:

Clojure提供了一个可以使用的REPL.



12> Ole..:

在常规控制台可以让你做到这一点.它实际上是试图测试groovy代码,但由于groovy是Java的超集,它也允许普通的Java东西.

我刚进入控制台:

InetAddress.getAllByName('localhost')

并按CTRL-R,然后返回:

groovy> InetAddress.getAllByName('localhost')

Result: [localhost/127.0.0.1]



13> joel.neely..:

Scala还提供交互式控制台.通过完全限定InetAddress,我能够使用它来获得问题中表达式的结果,如:

java.net.InetAddress.getAllByName("localhost")



14> sandeepkunku..:

虽然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);

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有