ylbtech-Java-JDK:JDK百科

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具

1.返回顶部
1、

版本

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。
SE(JavaSE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
EE(JavaEE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。从2018年2月26日开始,J2EE改名为Jakarta EE 。
ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。
没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE
以下是各版本的名称及发布日期:
版本
名称
发行日期
JDK 1.1.4
Sparkler(宝石)
1997-09-12
JDK 1.1.5
Pumpkin(南瓜)
1997-12-13
JDK 1.1.6
Abigail(阿比盖尔–女子名)
1998-04-24
JDK 1.1.7
Brutus(布鲁图–古罗马政治家和将军)
1998-09-28
JDK 1.1.8
Chelsea(切尔西–城市名)
1999-04-08
J2SE 1.2
Playground(运动场)
1998-12-04
J2SE 1.2.1
none(无)
1999-03-30
J2SE 1.2.2
Cricket(蟋蟀)
1999-07-08
J2SE 1.3
Kestrel(美洲红隼)
2000-05-08
J2SE 1.3.1
Ladybird(瓢虫)
2001-05-17
J2SE 1.4.0
Merlin(灰背隼)
2002-02-13
J2SE 1.4.1
grasshopper(蚱蜢)
2002-09-16
J2SE 1.4.2
Mantis(螳螂)
2003-06-26
Java SE 5.0 (1.5.0)
Tiger(老虎)
2004-09-30
Java SE 6.0 (1.6.0)
Mustang(野马)
2006-04
Java SE 7.0 (1.7.0)
Dolphin(海豚)
2011-07-28
Java SE 8.0 (1.8.0)
Spider(蜘蛛)
2014-03-18
Java SE 9   2017-09-21
Java SE 10   2018-03-14
jdk各个版本的特性
1997 年Servlet技术的产生以及紧接着JSP的产生,为Java对抗PHP,ASP等等服务器端语言带来了筹码。1998年,Sun发布了EJB1.0标准,至此J2EE平台的三个核心技术都已经出现。于是,1999年,Sun正式发布了J2EE的第一个版本。并于1999年底发布了J2EE1.2,在 2001年发布了J2EE1.3,2003年发布了J2EE1.4。
2.J2EE1.3 J2EE1.3的架构,其中主要包含了Applet容器,Application Client容器,Web容器和EJB容器,并且包含了Web Component,EJB Component,Application Client Component以JMS,JAAS,JAXP,JDBC,JAF,JavaMail,JTA等等技术做为基础。 1.3中引入了几个值得注意的功能:Java消息服务(定义了JMS的一组API),J2EE连接器技术(定义了扩展J2EE服务到非J2EE应用程序的标准),XML解析器的一组Java APIServlet2.3JSP1.2也都进行了性能扩展与优化全新的CMP组件模型和MDB(消息Bean)
3.J2EE1.4 J2EE1.4 大体上的框架和J2EE1.3是一致的,1.4增加了对Web服务的支持,主要是Web Service,JAX-RPC,SAAJ,JAXR,还对EJB的消息传递机制进行了完善(EJB2.1),部署与管理工具的增强(JMX),以及新版本的Servlet2.4和JSP2.0使得Web应用更加容易。
4.JAVA EE 5
JAVA EE 5拥有许多值得关注的特性。其中之一就是新的 Java Standard Tag Library (JSTL) 1.2 规范。JSTL 1.2 的关键是统一表达式语言,它允许我们在 JavaServer Faces (JSF) 中结合使用 JSTL 的最佳特性。
jdk1.8新特性
  1. Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可。
  2. 新增lambda表达式
  3. 提供函数式接口
  4. Java 8 允许你使用 :: 关键字传递方法或者构造函数引用
  5. 我们可以直接在lambda表达式中访问外层的局部变量

组成

JDK包含的基本组件包括:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程或建立能被Java程序调用的C过程的头文件
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据同时显示字节代码含义
Jconsole: Java进行系统调试和监控的工具
jdk结构图

分类

java.lang: 这个是系统的基础类,比如String等都是这里面的,这个包是唯一一个可以不用引入(import)就可以使用的包
java.io: 这里面是所有输入输出有关的类,比如文件操作等。
java.nio:为了完善io包中的功能,提高io包中性能而写的一个新包 ,例如NIO非堵塞应用
java.net: 这里面是与网络有关的类,比如URL,URLConnection等。
java.util: 这个是系统辅助类,特别是集合类Collection,List,Map等。
java.sql: 这个是数据库操作的类Connection, Statement,ResultSet等。
javax.servlet:这个是JSP,Servlet等使用到的类

环境配置

在Windows下
java运行环境安装与测试及HelloWorld的实现。
1.下载j2sdk 1.6.0_21或更高版本 (http://java.sun .com,建议同时下载其Java Documentation,这是Java帮助文档)。
2.运行刚刚下载的安装程序进行正式安装(以下假设安装于c:\jdk1.6.0_21\,建议安装路径不要有空格,不宜安装在\Program Files目录下!)。
3.设置运行环境参数:
a.如果是Win95、Win98,在\autoexec.bat的最后面添加如下3行语句:
set JAVA_HOME=JDK安装目录
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.;%JAVA_HOME%\lib
注意:---可用dos命令notepad c:\autoexec.bat打开记事本,加入上面的3行语句。
b.如果是Win2000、WinXP系统,使用鼠标右击“我的电脑”->属性->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:JDK安装目录
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
c.如果是Vista、Win7、Win8系统,使用鼠标右击“计算机”->属性->左侧高级系统设置->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:JDK安装目录
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
(CLASSPATH中有一英文句号“.”后跟一个分号,表示当前路径的意思)
(使用命令行的方法设置环境变量,只会对当前窗口生效)
(改Path变量时,不是删除原有的值而是添加新的路径)
4.使用文本编辑器(比如:edit .com/记事本/UltraEdit/EditPlus)编写如下代码,并保存为文件:HelloWorld.java(必须大小写正确!假设为c:\test\HelloWorld.java)
/* HelloWorld.java */
public class HelloWorld
{
public static void main(String[] arg)
{
System.out.println("Hello,World!");
}
}
5.开启一个命令提示符窗口,跳转到HelloWorld.java所在的目录中
c:\>cd \test
6.编译HelloWorld.java为HelloWorld.class
c:\test>javac HelloWorld.java
7.运行HelloWorld.class
c:\test>java HelloWorld
Hello,World!
其中步骤5~7可以简化成批处理,这样可以不用切换路径,方法如下:
在java源文件所在文件夹建立一个记事本文档,输入以下3行代码
javac HelloWorld.java
java HelloWorld
@pause
将其保存为"Java运行批处理.bat"
然后双击这个批处理文件,将出现cmd窗口下的编译运行结果,结果如下:
C:\test>javac HelloWorld.java
C:\test>java HelloWorld
Hello,World!
请按任意键继续. . .
在LINUX下
UbuntuLinux下jdk的安装与配置
1.安装
从sun公司网站www.sun .com下载linux版本的jdk
打开终端,用cd命令进入jdk所在目录,执行复制命令
sudo cp jdk-6u7-linux-i586.bin /usr
即将jdk复制到/usr目录下
然后进入/usr目录
cd /usr
执行权限
chmod +x jdk-6u7-linux-i586.bin
执行安装命令
./jdk-6u21-linux-i586.bin
(文件名)
如遇错误,可先切换至root用户下,su root,再执行安装命令
安装成功会在/usr目录下生成jdk1.6.0_07目录,就是jdk的安装目录
重启电脑,打开终端,输入java -version
如若有显示java的版本信息,则表示安装成功,
2.配置
安装成功后需要配置jdk环境变量
用cd命令进入/etc目录
sudo vi profile
即执行编辑profile文件命令
在umas k022前添加如下内容:
export JAVA_HOME=/usr/jdk1.6.0_21
export JRE_HOME=/usr/jdk1.6.0_21/jre
export PATH=$PATH:/usr/jdk1.6.0_21/bin
export CLASSPATH=./:/usr/jdk1.6.0_21/lib:/usr/jdk1.6.0_21/jre/lib
保存退出,重启电脑
3.测试
新建Test.java
public class Test{
public static void main(String[] args){
System.out.println("Hello,Welcome to Linux World!");
}
}
在终端用cd命令进入Test.java目录,然后输入
javac Test.java
java Test
若输出
Hello,Welcome to Linux World!
则表明配置成功!
如不能通过编译,可通过重新启动系统试试
4.注意
在用vi命令编辑profile文件时,Linux初学者可能还不熟用
sudo vi profile进入编辑文件后如出现
Press ENTER or type command to continue
则按回车
然后按方向键“下”直到umas k022前一行
按字母o进入编辑状态
输入环境变量内容
回车,按几次ESC键,直到听到"嘀"声,输入
:x
回车
即保存退出
至此,Linux jdk环境变量配置完成
如果安装完成时候在终端输入:java -version 不显示当前的安装版本的话
则需要卸载原先的版本即可。
yum -y remove <java版本>
例如:centos 版本
[root@localhost /]# yum -y remove java-1.4.2-gcj-compat 卸载它。
[root@localhost soft]# chmod 700 jdk-1_5_0_13-linux-i586.bin
[root@localhost soft]# ./jdk-1_5_0_13-linux-i586.bin
[root@localhost soft]# mv jdk1.5.0_13/ /usr/local/
为了方便以后升级,建立软链接
[root@localhost local]# ln -s /usr/local/jdk1.5.0_13/ /usr/local/jdk
定义环境变量
[root@localhost local]# vi /etc/profile
export JAVA_HOME=/usr/local/jdk
  export PATH=$PATH:$JAVA_HOME/bin
  export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
ok,至此java环境配置完毕

常用基本工具

1.Javac: Java源程序编译器,将Java源代码转换成字节码。
2.Java: Java解释器,直接从字节码文件,又称为类文件.执行Java应用程序的字节代码。
3.appletviewer.exe Java applet浏览器。appletviewer命令可在脱离万维网浏览器环境的情况下运行applet
4.jar: java应用程序打包工具,可将多个类文件合并为单个JAR归档文件。
5.Javadoc: Java API文档生成器从Java源程序代码注释中提取文档,生成API文档HTML页。
6.jdb: Java调试器(debugger),可以逐行执行程序,设置断点和检查变Md
7.jps: 查看Java虚拟机进程列表

2、
2.返回顶部
 
3.返回顶部
 
4.返回顶部
 
5.返回顶部
0、
0.1、
1、
2、
 
6.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Java-JDK:JDK百科的更多相关文章

  1. JAVA、JDK等入门概念,下载安装JAVA并配置环境变量

    一.概念 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言,具体介绍可查阅百度JAVA百科,这里不再赘述. Java分为三个体系,分别为: Java SE(J2SE,Java2 Platf ...

  2. How to Install JAVA 8 (JDK/JRE 8u111) on Debian 8 & 7 via PPA

    Oracle JAVA 8 Stable release has been released on Mar,18 2014 and available to download and install. ...

  3. Java的cmd配置(也即Java的JDK配置及相关常用命令)——找不到或无法加载主类 的解决方法

    Java的cmd配置(也即Java的JDK配置及相关常用命令) ——找不到或无法加载主类  的解决方法 这段时间一直纠结于cmd下Java无法编译运行的问题.主要问题描述如下: javac 命令可以正 ...

  4. Java 序列化 JDK序列化总结

    Java 序列化 JDK序列化总结 @author ixenos Java序列化是在JDK 1.1中引入的,是Java内核的重要特性之一.Java序列化API允许我们将一个对象转换为流,并通过网络发送 ...

  5. Java之.jdk卸载-Linux

    Java之.jdk卸载-Linux 卸载Linux自带的jdk 首先查询: #  rpm -qa | grep jdk 使用root账户,进行卸载: # yum -y remove xxxxxxxx( ...

  6. Java中JDK和JRE的区别是什么?它们的作用分别是什么?

    JDK和JRE是Java开发和运行工具,其中JDK包含了JRE,但是JRE是可以独立安装的,它们在Java开发和运行的时候起到不同的作用~ 1.JDK JDK是Java Development Kit ...

  7. java安装jdk错误1316 指定的账户已存在

    java安装jdk错误1316 指定的账户已存在 处理步骤: 1.卸载jdk,成功后重启 2.删除注册表中文件夹 (1)\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft文件夹 ...

  8. Java多线程--JDK并发包(2)

    Java多线程--JDK并发包(2) 线程池 在使用线程池后,创建线程变成了从线程池里获得空闲线程,关闭线程变成了将线程归坏给线程池. JDK有一套Executor框架,大概包括Executor.Ex ...

  9. Java多线程--JDK并发包(1)

    Java多线程--JDK并发包(1) 之前介绍了synchronized关键字,它决定了额一个线程是否可以进入临界区:还有Object类的wait()和notify()方法,起到线程等待和唤醒作用.s ...

  10. 【转】Java学习---JDK、JRE和JVM的关系

    [原文]https://www.toutiao.com/i6591348937267872269/ 首先是JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包 ...

随机推荐

  1. JS高级——作用域链

    基本概念 1.只要是函数就可以创造作用域 2.函数中又可以再创建函数 3.函数内部的作用域可以访问函数外部的作用域 4.如果有多个函数嵌套,那么就会构成一个链式访问结构,这就是作用域链 <scr ...

  2. c++ 以二进制和以文本方式读写文件的区别

    在c++项目开发中,时常涉及到文件读写操作.因此在这里先简单梳理和回顾一下文本模式和二进制模式在进行文件读写上的区别. 1.linux平台下文本文件和二进制文件的读写 在linux平台下进行文件读写时 ...

  3. 多线程-实现Runnable接口

    当一个任务或者函数多个线程同时调用时仅仅继承Thread是不行的.需要实现Runnable接口. 好处: 1.将线程的任务从线程的子类中分离出来,进行了单独的封装. 按照面向对象的思想将任务封装成对象 ...

  4. C# 获得固定年月日

    /// <summary> /// 获得固定年月日,时和分不固定 : 2019-01-01 00:00:00 /// </summary> /// <returns> ...

  5. Cesium学习笔记(五):3D 模型 (http://blog.csdn.net/umgsoil/article/details/74572877)

    Cesium支持3D模型,包括关键帧动画,皮肤的改变还有单个节点的选择等,Cesium还提供了了一个基于网络的工具,将COLLADA模型转换为glTF,方便和优化模型添加 还记得我们在实体添加的时候添 ...

  6. centos安装指定mysql

    mysql下载地址:http://repo.mysql.com/ nginx下载地址 我下载是这个 http://nginx.org/packages/centos/7/noarch/RPMS/ngi ...

  7. Django - 一对多创建

    1.新创建一个app python manage.py startapp app01 2.在django的setting.py中,填加新增的app名称 3.在app01的models.py中,添加代码 ...

  8. cf 337 div2 c

    C. Harmony Analysis time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  9. Hibernate连接池断开自动重连

    异常: javax.servlet.ServletException: org.springframework.transaction.CannotCreateTransactionException ...

  10. Python类中的 私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量.在python中定义私有变量只需要在变量 ...