文 by / 林本托

在第一部分中,主要讲解如下内容:

  • JDK 9 包含了哪些内容
  • 运行代码的系统要求
  • 如何安装 NetBeans

1 JDK 介绍

JDK 9是Java开发工具包的第九个主要版本,计划于2017年7月下旬发布。它带来了许多令人兴奋的新功能。 本套教程主要介绍Java开发人员在日常编程中有用的功能。 你可以在http://openjdk.java.net/projects/jdk9/上找到所有功能的完整列表。

JDK 9最重要和最令人激动的功能之一是模块系统,该模块系统是以代码名称Jigsaw的项目开发的。 JDK设计人员一直在努力将模块系统引入Java平台超过10年。 它计划是以前的几个JDK版本的一部分,后来被删除。Jigsaw 项目也多次延迟了JDK 9版本的发布。 不过Jigsaw 最近正在积极行动,发布新的JDK版本。

Tips
Jigsaw是OpenJDK项目下的一个子项目,旨在为Java SE平台设计、实现一个标准的模块系统,并应用到该平台和JDK中。

Jigsaw项目遇到了什么困难导致这么多年才完成?Jigsaw的主要目标是为Java开发人员提供一种称为模块的软件组件,来开发应用程序的方法。模块可以将其API导出以供公众使用并封装其内部。模块还可以声明对其他模块的依赖,并且可以在启动时验证这些依赖关系,从而在运行时避免发生类型缺失的错误。 JDK本身被分成一系列相互交互的模块。这提供了一个可扩展的运行时。如果你的应用程序使用JDK的子集,则可以创建包含应用程序和应用程序模块中使用的JDK模块的运行时映像。模块系统的所有这些功能看起来都很正常。一直困扰着JDK设计师的主要问题是模块系统的向后兼容性和迁移。 Java已经存在了20多年了。任何重大的特性,包括模块系统,都必须轻易应用。根据Java社区的反馈,重新设计和改进了几次迭代,最后走到了现在这一步。

JDK 9的另一个重要补充是JShell,它是Java的交互式编程环境。 JShell是一个命令行工具和API,它允许执行一段代码并获得即时反馈。 在JShell之前,你必须编写一个完整的程序,编译它并运行它来获得结果。 JShell是你在日常开发中使用的工具。 JShell对初学者至关重要,可以帮助他们快速学习Java语言,而无需了解程序结构的细节,如模块和程序包。

Tips
关于JShell相关知识,可以在博客园或简书中搜索“Java 9 尝鲜之交互式编程环境”这篇文章,里面有详细介绍。

除此而外,JDK 9还增加了其他一些新特性使你的开发变得更轻松。 例如,Reactive Streams API,集合工厂方法,筹划中的HTTP/2 Client API,Stack-Walking API,Platform Logging API和统一的JVM logging。

2 运行代码的系统要求

首先,你需要下载JDK 9 (Java Development Kit 9) ,目前可以直接去 Oracle 官网下载。

首先需要先同意许可协议,然后就可以下载了。Java 9 可以运行在很多平台上:

  • Windows 32-bit
  • Windows 64-bit
  • macOS 64-bit (formerly known as Mac OS X * or simply OS X)
  • Linux 32-bit
  • Linux 64-bit
  • Linux on ARM 32-bit
  • Linux on ARM 64-bit

下一步需要配置环境变量。跟之前的 JDK 配置方法相同。这里,我以 macOS 10.12 版本为例,在 Macbook 上的配置。这里会需要 vi 的一些基本操作,可以去网上查找如何使用。
下载完 JDK 后,直接运行。然后安装目录在:/library/Java/JavaVirtualMachines/jdk-9.jdk/

在 Terminal 下,进入到你的用户的当前目录下(一打开就是你的用户默认目录,实在不清楚在命令行敲入cd
则会切换到默认目录下)。在命令行中执行ls -a命令,列出当前目录下的包括隐藏的文件或目录。

4.找到 .bash_profile文件,此文件会影响你当前用户的配置信息,并执行vi .bash_profile 命令编辑此文件。

5.进入编辑页面后,配置 Java Home 和 Path 环境变量:
配置 Java 环境变量

6.配置完以后,使用esc键退出编辑状态,输入“:wq”,保存并退出。并执行. .bash_profile,使配置文件立刻生效。在命令行下执行javac -version,如果输出如下信息,则说明 JDK 配置正确。

至此,JDK 配置完成。

3 如何安装 NetBeans

如果要编译并运行Java 程序程序,需要在计算机上安装集成开发环境(IDE),例如NetBeans或Eclipse。 目前没有IDE完全支持JDK 9中的模块系统。但是,NetBeans支持每个NetBeans项目创建一个模块。 也就是说,如果要在NetBeans中创建三个Java模块,则需要创建三个NetBeans Java项目。 一个Java模块可以使用NetBeans中的项目依赖关系来引用其他Java模块。 目前,NetBeans不支持多模块Java项目。 可以在wiki页面上找到有关NetBeans中模块系统支持的最新信息:http://wiki.netbeans.org/JDK9Support

你可以从以下链接下载最新的支持JDK 9的NetBeans版本:http://bits.netbeans.org/download/trunk/nightly/latest/。里面有很多NetBeans版本供我们下载,为了方便,我们直接下载“All”的这个版本。

至此,JDK 9的配置已经完成,NetBeans也已经下载,关于NetBeans的详细配置,会在后面的章节中介绍。

Java 9 揭秘(1. 入门介绍)的更多相关文章

  1. 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用

    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...

  2. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  3. 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法

    083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...

  4. 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法

    082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...

  5. Java 9 揭秘全目录汇总

    Tips 做一个终身学习的人. 当写这篇文章时,关于Java 9的学习就先告一段落了. 首先介绍一下背景,大概两个月前,我突然有兴趣想看看Java 9,当时读了一本英文原著<Java 9 Rev ...

  6. 《Java 9 揭秘》全目录汇总

    Tips 做一个终身学习的人. 当写这篇文章时,关于Java 9的学习就先告一段落了. 首先介绍一下背景,大概两个月前,我突然有兴趣想看看Java 9,当时读了一本英文原著<Java 9 Rev ...

  7. 初识Hadoop入门介绍

    初识hadoop入门介绍 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. < ...

  8. Java程序员快速入门Go语言

    这篇文章帮助Java程序员快速入门Go语言. 转载至 开源中国社区. http://www.oschina.net 本文将以一个有代表性的例子为开始,以此让Java程序员对Go语言有个初步认识,随后将 ...

  9. mybatis入门介绍一

    首先介绍一下Mybatis是什么?mybatis是Java的持久层框架, JAVA操作数据库是通过jdbc来操作的,而mybatis是对jdbc的封装. 使用mybatis之后,开发者只需要关注sql ...

  10. mybatis入门介绍二

    相信看过我的上一篇博客的同学都已经对mybatis有一个初步的认识了.这篇博客主要是对mybatis的mapper代理做一下简单的介绍,希望能够帮助大家共同学习. 我的上一篇博客:mybatis入门介 ...

随机推荐

  1. C#.NET常见问题(FAQ)-如何使用2D绘图控件ZedGraph绘制坐标轴和坐标曲线

    添加数据:示例添加了一条sin曲线和一条cos曲线,注意cos曲线比sin曲线点更密集(可以用这种方式控制点的采样疏密程度)   默认显示效果如下图所示,可以框选一个部分看放大效果   右击某个点可以 ...

  2. 解决IE6兼容性问题的十一大技巧

    10要点解决IE6兼容性问题 1.使用声明 你必须经常在html网页头部放置一个声明,推荐使用严格的标准.例如 <!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.01// ...

  3. Java 之 POI各Jar包作用

    目前POI的最新版本是 3.16-beta2,该版本是测试版本,稳定版本是 3.15,下载地址为 Apache POI (http://poi.apache.org/download.html). 一 ...

  4. C++ 第六课:C/C++关键字及其用法

    asm 插入一个汇编指令. auto 声明一个本地变量. bool 声明一个布尔型变量. break 结束一个循环. case 一个switch语句的一部分. catch 处理 thrown 产生的异 ...

  5. optimizer_mode优化器模式

    查询优化器最主要的工作就是接受输入的SQL以及各种环境参数.配置参数,生成合适的SQL执行计划(Execution Plan). Query Optimizer一共经历了两个历史阶段: RBO: Ru ...

  6. 一起talk C栗子吧(第八十五回:C语言实例--使用信号进行进程间通信二)

    各位看官们,大家好,上一回中咱们说的是使用信号进行进程间通信的样例,这一回咱们接着上一回的内容,继续说该样例.闲话休提.言归正转. 让我们一起talk C栗子吧. 我们在上一回中举了使用信号进行进程间 ...

  7. VTK中导入并显示STL、3DS文件

    VTK(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学.图像处理和科学计算可视化.VTK是在三维函数库OpenGL 的基础上采用面向对象的设计方法发展起 ...

  8. LevelDB和ForestDB简单性能测试(含代码)

    测试环境简单说明 Windows下测试 硬件环境如下: 处理器:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz 内 存:8GB 硬 盘:希捷 ST1000DM003 操 ...

  9. Fiddler拦截并修改移动端请求

    bpu url 由于测试电商平台APP,需测试购买,但又限于公司一提到钱,就给种不给力,所以想到使用Fiddler拦截消息,修改一个虚拟商品ID,虚拟商品价格为0.01元,方便以后测试. 1.打开Fi ...

  10. oracle初始化化表空间用户权限

    oracle单实例安装完毕,需要初始化表空间.用户.等信息.不积跬步,何以至千里! 用sys账户登录oracle数据库,以此来完成所有操作! 01.创建临时表空间 create temporary t ...