Java 11 马上要来了,原定于 9 月发布,还有不到 3 个月了,敬请期待更多新功能被加入到 11 当中,本文本讲的是 JEP 330 这个新特性。

化繁为简,一个命令编译运行源代码

看下面的代码。

// 编译
javac Javastack.java // 运行
java Javastack

在我们的认知里面,要运行一个 Java 源代码必须先编译,再运行,两步执行动作。而在未来的 Java 11 版本中,通过一个 java 命令就直接搞定了,如以下所示。

java Javastack.java

然而,这也并没有什么卵用。我们大部分开发工作都在 IDE 工具中,所有的编译运行过程都由 IDE 完成的,真正用到命令行来编译、运行的场景真的非常少。当然,如果你是记事本大神,请收下这个功能。

从另外一面来看,这是不是意味着 javac 要退出历史舞台了呢?不会。因为,还是需要编译源代码的命令的,而不是直接运行。

支持 Shebang #! 符号运行 Java 程序

Shebang #! 这是什么鬼?这也是 JEP 330 里面的相关技术,它能支持在 UNIX 系统脚本中运行 Java 程序,如以下代码所示。

#!/path/to/java --source version

JEP 330 总结

Oracle JEP 330 这个特性只是为了为了编译和运行小型的 Java 应用程序而提供的,而不是使用 Java 变成成能通用性语言。这个特性评审时就饱受争议,但最终达成共识确认会被加入到 Java 11 新版本当中。

参考资料:https://securityonline.info/jdk-11-will-introduce-shebang-symbol/

Java 11 快要来了,编译 & 运行一个命令搞定!的更多相关文章

  1. 一个命令搞定 Web 国际化

    背景 随着出海的业务越来越多,web 应用面临越来越多的国际化的工作.如何高效,高质量的完成 Web 前端国际化工作,已经是摆在 web 前端同学的急需解决的问题. i18n-helper-cli 是 ...

  2. Centos安装桌面环境(一个命令搞定)

    # yum groupinstall "X Window System" "GNOME Desktop Environment"

  3. 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

    1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...

  4. Jquery一个slideToggle搞定div的隐藏与显示

    Jquery一个slideToggle搞定div的隐藏与显示 <!DOCTYPE html> <html> <head> <script src=" ...

  5. ubuntu下code::blocks编译运行一个简单的gtk+2.0项目

    在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt ...

  6. ubuntu下使用code::blocks编译运行一个简单的gtk+2.0项目

    在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt ...

  7. 一个注解搞定SpringBoot接口定制属性加解密

    前言 上个月公司另一个团队做的新项目上线后大体上运行稳定,但包括研发负责人在内的两个人在项目上线后立马就跳槽了,然后又交接给了我这个「垃圾回收人员」. 本周甲方另一个厂家的监控平台扫描到我们这个项目某 ...

  8. 收不到Win10正式版预订通知?一个批处理搞定

    目前,已经有不少Win7.Win8.1用户在系统右下角收到Win10正式版的预订提示窗口.点击接受预订后,系统会将Win10正式版所需的安装文件提前下载好,7月29日正式发布的时候,就可以第一时间升级 ...

  9. H5 拖拽,一个函数搞定,直接指定对象设置可拖拽

    页面上,弹个小窗体,想让它可以拖拽,又不想 加载一堆js,就简单的能让他可以拖动? 嗯,下面有这样一个函数,调用下就好了! 1. 先来说说 H5的 拖拽 在 HTML5 中,拖放是标准的一部分,任何元 ...

随机推荐

  1. R语言-简单模型画图

    1.回归拟合 > plot(mtcars$mpg~mtcars$disp) > lmfit<-lm(mtcars$mpg~mtcars$disp) #线性回归模型 > abli ...

  2. R语言-地图

    1.maps包的map()函数 >map('world', fill = TRUE,col=heat.colors(10)) #世界地图 >map("state", i ...

  3. 微信小程序星星评价

    https://www.jianshu.com/p/4d7359dfa040

  4. 深入浅出PF 学习笔记---通过资源文件设置按钮的Style及通过x:null设置不受Style影响

    <Window x:Class="WpfStudy2018.StyleButton" xmlns="http://schemas.microsoft.com/win ...

  5. 织梦会员 Warning: preg_replace(): The /e modifier is no longer supported, us...

    http://php.net/manual/zh/reference.pcre.pattern.modifiers.php#reference.pcre.pattern.modifiers.eval ...

  6. RDD认知

    1.RDD又叫弹性分布式数据集 2.抽象 3.带泛型,支持多种数据类型 4.集合是可以进行分区 例如(1,2,3,4,5,6,7,8,9)这个数组是可以进行分区的(1,2,3)  (4,5,6)  ( ...

  7. 转:JMeter监控内存及CPU ——plugin插件监控被测系统资源方法

    JMeter监控内存及CPU ——plugin插件监控被测系统资源方法 jmeter中也可以监控服务器的CPU和内存使用情况,但是需要安装一些插件还需要在被监测服务器上开启服务. 1.需要的插件准备 ...

  8. VMware虚拟机配置端口转发(端口映射),实现远程访问【转】

    前言本文所写的远程为各个电脑在同一个网段内 本文主要详细介绍如何远程访问虚拟机里面的项目! 机器:虚拟机(装在电脑1里).电脑1(宿主机).电脑2.电脑3.电脑4.电脑n... 操作步骤: step1 ...

  9. angular模拟web API

    现象:angular Cannot find module 'angular-in-memory-web-api'报错找不动“angular-in-memory-web-api”模块 解决:1.控制台 ...

  10. scrollIntoView()窗口滚动

    1.某DIV窗口滚动到顶部: document.getElementById("某DIV的ID").scrollIntoView(true); 2.某DIV窗口滚动到底部: doc ...