文 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的详细配置,会在后面的章节中介绍。

转载于:https://www.cnblogs.com/IcanFixIt/p/6940185.html

Java 9 揭秘(1. 入门介绍)相关推荐

  1. java cutdown_Java并发程序入门介绍

    今天看了看Java并发程序,写一写入门程序,并设置了线程的优先级. class Elem implements Runnable{ public static int id = 0; private ...

  2. 【Java基础教程】(一)入门介绍篇 · 上:快速掌握核心概念,开启Java世界的探索之旅!这篇Java入门宝典助你翱翔~

    Java基础教程之入门介绍 · 上 本节学习目标 1️⃣ Java发展简史 1.1 诞生 1.2 发展 1.3 分支 2️⃣ 特征 3️⃣ 代码执行过程

  3. Java中的模块(Module)入门介绍

    Java中的模块(Module)入门介绍 在Java 9版本中Java 语言引入了一个非常重要的概念:模块(module).module引入了Java代码分组的另一个级别.每个module都包含许多子 ...

  4. unformat方法java_快速入门介绍Java中强大的String.format()

    快速入门介绍Java中强大的String.format() 发布于 2020-12-12| 复制链接 摘记: 前言从 Java 5.0 开始,String 类新增了一个强大的字符串格式化方法 form ...

  5. Java JPA快速入门介绍

    JPA快速入门介绍 一:什么是JPA JPA的英文全称是Java PersistenceAPI, 目的是给Java开发者提供对象关系映射工具用于在 Java应用程序开发中来管理关系数据(RDBMS). ...

  6. SpringBoot 2.0 系列001 -- 入门介绍以及相关概念

    为什么80%的码农都做不了架构师?>>>    SpringBoot 2.0 系列001 -- 入门介绍以及相关概念 什么是SpringBoot? 项目地址:http://proje ...

  7. Tomcat容器入门介绍

    Tomcat容器入门介绍 Tomcat环境配置 PS:JDK的安装这里就不讲了,找到安装包直接下一步下一步就行了. 1.配置JDK 在Windows10下,找到环境变量 在环境变量中添加JDK主目录 ...

  8. Spring入门介绍:

    Spring入门介绍 Spring诞生: 创建Spring的目的就是用来替代更加重量级的的企业级Java技术 简化Java的开发 基于POJO轻量级和最小侵入式开发 通过依赖注入和面向接口实现松耦合 ...

  9. Dart语言精简入门介绍

    Dart语言精简入门介绍 1.介绍 Dart 在设计时应该是同时借鉴了 Java 和 JavaScript和kotlin 面向对象 JIT&AOT:JIT(Just in Time)优点:即时 ...

  10. Python 01:Pyton历史和入门介绍

    Pyton历史和入门介绍 Python是在1991年诞生的一门面向对象.解释型计算机程序设计语言.Python能做很多事情,小到简单脚本大到后端架构设计,也可以使用python来做胶水语言.学习程序设 ...

最新文章

  1. 如果修改了表结构的话,可能也需要将调用到表的存储过程、函数等也修改一下,以下语句可以查询到那些对象调用到被修改的表...
  2. d3.js 旋转图形_几何画板第9期图形的组合型运动
  3. Linux之du df free:du文件大小 df分区使用 free内存
  4. .net core 一个避免跨站请求的中间件
  5. python视频转化_python实现m3u8格式转换为mp4视频格式
  6. ios uitableview 去掉多余的空行
  7. CSS 小结笔记之em
  8. 关于json时间字符串格式化处理
  9. sed -i 单引号中嵌套双引号_【函数应用】IF函数的多层嵌套
  10. Matlab求矩阵均值
  11. 点餐小程序源码­|PHP微信点餐小程序
  12. C# 从零开始编写一个修改“植物大战僵尸”阳光的内存辅助
  13. 三个基本的布尔逻辑算符是_布尔逻辑算符.ppt
  14. 「日常训练知识学习」树的直径(POJ-1849,Two)
  15. 踔厉奋发,笃行不怠——2022年度引迈信息年终总结
  16. 执行python manage.py makemigrations出现如下错误解决方法
  17. 中国部分***资料(借鉴高手所学)
  18. 计算机温度压力测试,鲁大师温度压力测试怎么看结果 鲁大师的温度压力测试教程...
  19. MASM 8.0 下载 安装方法
  20. 全国首张“跨省通办”结婚证在山东发出;奥动新能源2025年前在全国建1万座换电站 | 美通社头条...

热门文章

  1. UICollectionView的sectionHeader悬浮效果
  2. 摩尔定律会死亡吗 芯片到底可以变得有多小
  3. 微软确定 Win10 付费才能玩 还能不能愉快玩耍?
  4. 触摸板库tslib的编译和配置
  5. po 时不生效时, 不要用点方法
  6. Smarty中的ob_start问题
  7. VirtualAlloc和VirtualCopy----VirtualFree
  8. Java 对象初始化过程
  9. Spring框架—SpringBean源码分析
  10. 详解Bitmap之ARGB_8888/RGB_565/ALPHA_8/ARGB_4444