Java 11即将完成,并且进入了下降阶段 。 好像在几周前就发布了Java 9,而在这里,距离发布Java 11不到几个月。 鉴于Java的新发行过程和时间表,这将变得司空见惯。 不管那是好事,我们都将其搁置一旁。

这里列出了Java 11中的更改​​。 这些是此版本中的一些不错的增强功能。 我非常兴奋的其中两个是:

– HTTP客户端(标准) http://openjdk.java.net/jeps/321 ,它将HTTP客户端API作为Java语言的一部分引入。

–启动单文件源代码程序http://openjdk.java.net/jeps/330

在本文中,我将介绍“启动单文件源代码程序”功能。 此增强功能旨在实现的目的是使运行包含单个文件的Java代码变得容易,该文件中包含“ main()”方法。

假设您在org / myapp目录下的HelloWorld.java文件中有一个简单的HelloWorld程序,如下所示:

package org.myapp;public class HelloWorld {public static void main(String[] args) throws Exception {System.out.println("Hello World!");}
}

现在,没有建议的功能,为了运行该程序,用户必须首先使用javac命令对其进行编译:

javac org/myapp/HelloWorld.java

成功编译后,您可以运行java命令来执行程序:

java org.myapp.HelloWorld

因此,这是一个两步过程。 即使对于初学者来说,它看起来也是微不足道的,但是不仅对于初学者,甚至对于经常使用Java的开发人员,它仍然可以变得更加简单。

Java 11发布后(或者如果您想立即尝试,可以从http://jdk.java.net/11/获取早期访问版本),我们可以按以下方式运行上述程序(作为单个命令) :

java org/myapp/HelloWorld.java

注意这里的区别:

1.一,我们不再使用javac命令来显式编译源代码

2.现在,将Java命令的路径传递到源文件(org / myapp / HelloWorld.java)的路径,而不是之前用来传递全限定类名的路径。

这种差异虽然很小,但很重要,因为通过Java命令传递的文件名以.java扩展名结尾的文件路径后,它现在“了解”它现在必须在内部做任何必要的事情(例如编译源代码)。 当然,这样的文件应该包含常规/有效的Java代码,并带有顶级类,该顶级类公开“ public static void main(String [])”方法。

此外,就像常规Java程序一样,您可以像以前一样继续将应用程序特定的参数传递给该程序。 例如,对于下面显示的计算器程序,在org / myapp / Calculator.java文件中:

package org.myapp;public class Calculator {public static void main(final String[] args) throws Exception {final int sum = Integer.parseInt(args[0]) +  Integer.parseInt(args[1]);System.out.println(args[0] + " + " + args[1] + " = " + sum);}
}

您可以按以下方式传递程序参数:

java org/myapp/Calculator.java 2 4

其中2和4作为程序参数传递,您将看到如下输出:

2 + 4 = 6

此功能还增加了对“ shebang”文件的支持,这些文件应具有有效的Java代码以及“ shebang”。 就个人而言,我不太喜欢该功能的这一特定方面。 但是,好消息是, JDK团队从社区中获得了反馈,并提出了该功能的这一附加方面,即非侵入性(用于已经处理Java源文件的工具/命令),如果我们不这样做,我们中的一些人可能会忽略这一点。不想使用它。 何时/如何使用“ shebang”文件用于此功能的详细信息在链接的JEP-330中进行了说明 。

到目前为止,尽管Java 11尚未发布,但我一直在使用早期访问版本,并在我的一些常规工作中广泛使用此功能,有时会涉及到一些简短的程序来帮助重现问题。 我通常不使用IDE来执行此类操作,因此能够对此类文件发出单个命令并执行它们是一个值得欢迎的增强功能。

翻译自: https://www.javacodegeeks.com/2018/07/java-11-upcoming-features.html

Java 11即将发布的功能–启动单文件源程序相关推荐

  1. jdk12源代码文件_在JDK 11中启动单文件源代码程序

    jdk12源代码文件 JEP 330 –启动单文件源代码程序是即将发布的JDK 11(18.9)发行版中令人兴奋的功能之一. 此功能允许直接使用java解释器执行Java源代码. 源代码在内存中编译, ...

  2. 在JDK 11中启动单文件源代码程序

    JEP 330 –启动单文件源代码程序是即将发布的JDK 11(18.9)发行版中令人兴奋的功能之一. 此功能允许直接使用java解释器执行Java源代码. 源代码在内存中编译,然后由解释器执行. 限 ...

  3. Java 11将包含更多功能

    Java 11中即将推出的功能是什么?它与Java 9和10有何不同? Java 10可能是新手,但现在该谈论Java 11了.Oracle迈向更快的发布周期意味着更多的特性和功能以比以往更快的速度出 ...

  4. Java 11中的新功能和API详解系列1

    Java 11中的新功能和API详解系列1 2018.9.27 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. JDK 11在语言语法方面有一个小改动,增加了相当数量的新API,以及 ...

  5. 罗永浩向老同事道歉;三星漏洞已波及四千万用户;Clojure 1.11 即将发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  6. 10月10日科技资讯 |罗永浩向老同事道歉;三星漏洞已波及四千万用户;Clojure 1.11 即将发布 | 极客头条

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 整理 | 胡 ...

  7. java 解析ASN.1 编码格式cdr话单文件例子

    java 解析ASN.1 编码格式cdr话单文件例子.程序中并没有将文件所有内容正确解析,只是一个例子

  8. Apache Ant 1.9.13和1.10.5发布–支持Java 11单文件源程序

    我们刚刚发布了Apache Ant的1.9.13和1.10.5版本 . 与往常一样,您可以从Ant项目下载页面下载它. 这两个版本主要是错误修复版本. 但是,1.10.5版对" java&q ...

  9. Windows 11 即将发布,微软“强推” Edge 浏览器?

    作者 | 苏宓 出品 | CSDN(ID:CSDNnews) 25 年前,浏览器之争初起,IE 与网景(Netscape)"大战"四年,最终以网景被 AOL 收购.IE 市场份额节 ...

最新文章

  1. cmd 查看端口占用情况
  2. overflow encountered in exp
  3. html css 重复,CSS重复定义的问题请教_html/css_WEB-ITnose
  4. WdatePicker显示乱码
  5. Exploring Pyramids【动态规划——区间DP】
  6. R语言快速深度学习进行回归预测(转)
  7. 日语输入法切换-「かな入力」「ローマ字入力」切换方法
  8. 小程序源码:全新实用工具证件照制作微信小程序源码下载支持多种证件生成与制作
  9. 野生二粒小麦基因组在science发布
  10. 世界强大的移动便携图形工作站介绍(轻便型便携工作站(PL系列)介绍)
  11. Redis一主二从Sentinel监控配置
  12. 被食者与食者系统matlab,捕食者与被捕食者模型——Logistic-Volterra
  13. 登录前的人机验证VAPTCHA
  14. 【android】Android Studio创建模拟手机虚拟机
  15. 深度学习之(DNN)深度神经网络
  16. 幂运算、对数和指数学习
  17. python源码只有编译成二进制_setup-cython(2):把Python打包成二进制应用吧
  18. 计算机桌面右下角的图标不见了,图标,详细教您怎么解决右下角图标不见了的问题...
  19. android项目打包apk,Android Studio将程序打包成APK的步骤详解
  20. python下载图片到文件夹_Python下载图片并保存本地的四种方法

热门文章

  1. 秀姿势(jzoj 3464)
  2. JS实现星星评分功能实例代码(两种方法)
  3. jQuery中position()与offset()区别
  4. Oracle入门(十二B)之表创建
  5. Java 8 HashMap键与Comparable接口
  6. “看起来你每天都要做好多事,你有时间吗?”
  7. 当当网新用户注册界面——界面源码
  8. 2-7 SpringBoot常用注解讲解
  9. 中国有超级计算机的大学,计算机专业排名看超算实力,ASC竞赛五大高校排名,中山大学第一...
  10. python django 是啥_python的django做什么的