Java 9 揭秘(1. 入门介绍)
文 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. 入门介绍)的更多相关文章
- 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
- 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字
084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...
- 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法
083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...
- 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法
082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...
- Java 9 揭秘全目录汇总
Tips 做一个终身学习的人. 当写这篇文章时,关于Java 9的学习就先告一段落了. 首先介绍一下背景,大概两个月前,我突然有兴趣想看看Java 9,当时读了一本英文原著<Java 9 Rev ...
- 《Java 9 揭秘》全目录汇总
Tips 做一个终身学习的人. 当写这篇文章时,关于Java 9的学习就先告一段落了. 首先介绍一下背景,大概两个月前,我突然有兴趣想看看Java 9,当时读了一本英文原著<Java 9 Rev ...
- 初识Hadoop入门介绍
初识hadoop入门介绍 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. < ...
- Java程序员快速入门Go语言
这篇文章帮助Java程序员快速入门Go语言. 转载至 开源中国社区. http://www.oschina.net 本文将以一个有代表性的例子为开始,以此让Java程序员对Go语言有个初步认识,随后将 ...
- mybatis入门介绍一
首先介绍一下Mybatis是什么?mybatis是Java的持久层框架, JAVA操作数据库是通过jdbc来操作的,而mybatis是对jdbc的封装. 使用mybatis之后,开发者只需要关注sql ...
- mybatis入门介绍二
相信看过我的上一篇博客的同学都已经对mybatis有一个初步的认识了.这篇博客主要是对mybatis的mapper代理做一下简单的介绍,希望能够帮助大家共同学习. 我的上一篇博客:mybatis入门介 ...
随机推荐
- Windows下搭建elasticsearch集群案例
https://blog.csdn.net/u014236259/article/details/64129918
- 微信小程序 - 下拉刷新(非组件)
详情见示例:refresh
- NGINX源码分析——概览
一.概况 Nginx可以开启多个进程,每个进程拥有最大上限128个子线程以及一定的可用连接数.最大客户端连接数等于进程数与连接数的乘积,连接是在主进程中初始化的,一开始所有连接处于空闲状态.每一个客户 ...
- 设计模式 - 模板方法模式(template method pattern) 排序(sort) 具体解释
模板方法模式(template method pattern) 排序(sort) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(tem ...
- python获取PING结果
# -*- coding: utf-8 -*- import subprocess import re def get_ping_result(ip_address): p = subprocess. ...
- java中经常使用的快捷键
Eclipse(MyEclipse) 经常使用快捷键Eclipse 的编辑功能很强大.掌握了 Eclipse 快捷键功能,能够大大提高开发效率. Eclipse中有例如以下一些和编辑相关的快捷键.1. ...
- Calling a PL/SQL procedure in ODI
新建procedure 新建一个测试表格EMP: CREATE TABLE EMP ( ) CONSTRAINT PK_EMP PRIMARY KEY, ENAME ), JOB ), MGR ), ...
- 20160210.CCPP体系具体解释(0020天)
程序片段(01):01.二级指针.c 内容概要:二级指针 #include <stdio.h> #include <stdlib.h> //01.二级指针: // 1.使用场景 ...
- mvn test
mvn -B install -Dmaven.test.skip=true -Dautoconfig.skipmvn -B org.codehaus.mojo:cobertura-maven-plug ...
- 〖Linux〗Linux高级编程 - 进程间通信(Interprocess Communication)
[转自: http://blog.csdn.net/Paradise_for_why/article/details/5550619] 这一章就是著名的IPC,这个东西实际的作用和它的名字一样普及.例 ...