jdk入门_JDK 9 REPL:入门
jdk入门
会议是聚会Java名人的好地方。 Devoxx France是与Java语言架构师,前同事和老朋友Brian Goetz( @briangoetz )见面的一个机会。 我们谈论了JDK 9,而他全都热衷于REPL。 他提到,尽管Java SE 9中有很多重要功能 ,例如模块化和HTTP2客户端 ,但该工具将是最常被谈论的。 该声明之所以有意义,是因为它将真正简化Java API的探索,原型开发,会议中的演示以及类似任务,并且更加简单。 这个博客来自我们在那里的讨论以及他对REPL的强烈投票!
Read-Evaluate-Print-Loop在Lisp,Python,Ruby,Groovy,Clojure和其他语言中已经存在了一段时间。 Unix shell是一个REPL,可以读取shell命令,评估它们,打印输出并返回循环以执行相同的操作。
您可以在JEP 222中的JDK 9中阅读有关REPL的全部信息。 JEP的摘要是:
提供一个交互式工具,该工具可以评估Java编程语言的声明,语句和表达式:即,提供Java编程语言的读取-评估-打印循环(REPL)。 另外,提供在其上构建工具的API,从而使外部工具能够提供此功能。 杰普222
JEP还明确阐明了动机:
没有Foo类{public static void main(String [] args){…}}的仪式,学习和探索就变得简化了。 杰普222
JEP 222的目标是将REPL与JDK 9一起提供,但openjdk.java.net/projects/jdk9并未将其列为“目标”或“建议目标”。 好像是一个文档错误:)
从JDK 9 build 61开始,REPL未集成,需要单独构建。 最终,在发布JDK 9之前的某个时间,此工具将集成到内部版本中。
让我们看看在OSX上运行它需要什么。 该博客遵循Java 9 REPL –入门指南来构建和运行REPL。 此外,它还提供了命令的完整日志输出,这可能对某些人有帮助。
让我们开始吧!
安装JDK 9
在OSX上设置JAVA_HOME的更多详细信息在这里 。
检出并安装jline2
jline2是一个用于处理控制台输入的Java库。 看看这个:
workspaces> git clone git://github.com/jline/jline2.git Cloning into 'jline2'... remote: Counting objects: 6419, done. remote: Total 6419 (delta 0), reused 0 (delta 0), pack-reused 6419 Receiving objects: 100% (6419/6419), 3.23 MiB | 80.00 KiB/s, done. Resolving deltas: 100% (2945/2945), done. Checking connectivity... done.然后构建它:
jline2> mvn install [INFO] Scanning for projects... Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/scm/maven-scm-provider-gitexe/1.8.1/maven-scm-provider-gitexe-1.8.1.pom Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/scm/maven-scm-provider-gitexe/1.8.1/maven-scm-provider-gitexe-1.8.1.pom (3 KB at 0.3 KB/sec). . .[INFO] Installing /Users/arungupta/workspaces/jline2/target/jline-2.13-SNAPSHOT-sources.jar to /Users/arungupta/.m2/repository/jline/jline/2.13-SNAPSHOT/jline-2.13-SNAPSHOT-sources.jar [INFO] Installing /Users/arungupta/workspaces/jline2/target/jline-2.13-SNAPSHOT-tests.jar to /Users/arungupta/.m2/repository/jline/jline/2.13-SNAPSHOT/jline-2.13-SNAPSHOT-tests.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 09:52 min [INFO] Finished at: 2015-05-06T19:23:14-07:00 [INFO] Final Memory: 25M/146M [INFO] ------------------------------------------------------------------------克隆并构建JDK 9 REPL
该项目的OpenJDK代号为Kulla,意为“建设者之神”。 该工具的计划名称为jshell 。
注意,唯一的编辑是OSX的#!/bin/sh并将JLINE2LIB添加到先前编译的jline2工作区的位置。 从引用JDK 9的JAVA_HOME中拾取javac 。
运行JDK 9 REPL
注意,对于OSX唯一的编辑是!/bin/sh并添加JLINE2LIB 。
JDK 9 REPL Hello World
与引入Java的弹跳球或跳舞Duke引入不同,我们只将常规的Hello World用于REPL
将“ Hello World”运行为:
-> System.out.println("Hello World"); Hello World瞧!
没有public static void main ,没有类的创建,没有仪式,只是干净而简单的Java代码。 输入的文本称为“代码段”。
可以使用/list all查看完整的Java代码,如下所示:
-> /list all1 : import java.util.*;2 : import java.io.*;3 : import java.math.*;4 : import java.net.*;5 : import java.util.concurrent.*;6 : import java.util.prefs.*;7 : import java.util.regex.*;8 : void printf(String format, Object... args) { System.out.printf(format, args); }9 : System.out.println("Hello World");该代码段可以另存为文件:
-> /save test请注意,这不是Java文件。 保存的代码段正是输入的内容:
repl> more test System.out.println("Hello World");该工具可以退出为:
-> /exit | Goodbye或者您可以按Ctrl + C。
完整的命令列表很容易看到:
-> /help Type a Java language expression, statement, or declaration. Or type one of the following commands:/l or /list [all] -- list the source you have typed/seteditor <executable> -- set the external editor command to use /e or /edit <name or id> -- edit a source entry referenced by name or id /- or /drop <name or id> -- delete a source entry referenced by name or id /s or /save [all|history] <file> -- save the source you have typed /o or /open <file> -- open a file as source input /v or /vars -- list the declared variables and their values /m or /methods -- list the declared methods and their signatures /c or /classes -- list the declared classes /x or /exit -- exit the REPL /r or /reset -- reset everything in the REPL /f or /feedback <level> -- feedback information: off, concise, normal, verbose, default, or ? /p or /prompt -- toggle display of a prompt /cp or /classpath <path> -- add a path to the classpath /h or /history -- history of what you have typed/setstart <file> -- read file and set as the new start-up definitions/savestart <file> -- save the default start-up definitions to the file /? or /help -- this help messageSupported shortcuts include: <tab> -- show possible completions for the current text Shift-<tab> -- for current method or constructor invocation, show a synopsis of the method/constructorJDK 9 REPL后续步骤和反馈
请遵循REPL教程以了解有关该工具功能的更多信息。 快速概述:
- 接受Java语句,变量,方法和类的定义,导入和表达式
- 设置和显示信息的命令,例如/list显示代码片段列表, /vars显示变量列表, /save保存代码片段, /open读回它们。
- 片段的历史记录可用,片段可以按数字进行编辑,等等
这是一个有用的RFE:
- 将代码段导出为完整的Java类
随后的博客将展示如何将其用于Java EE应用程序的播放。 您将如何使用REPL?
在kulla-dev上讨论项目/问题。
请享用!
翻译自: https://www.javacodegeeks.com/2015/05/jdk-9-repl-getting-started.html
jdk入门
创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖总结
以上是生活随笔为你收集整理的jdk入门_JDK 9 REPL:入门的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 免费点赞的软件电脑版(点赞吧软件下载)
- 下一篇: 本地构建和自动化构建_构建自动化面板