JVM:Java虚拟机

JRE:(Java Runtime Environment)Java程序允许,测试,传输应用程序的环境和平台

包括 jvm ,java 核心类库和支持的文件,但不包含开发工具JDK:编译器,调试器

和一些相关的工具,仅仅只是一个环境。

JDK:(Java Development Kit)Java语言开发工具包,包含JRE,JDK包含的基本组件有

javac  编译器    将源代码编译成可执行程序

      jar    打包器    将相关的类文件打包成一个文件

      javadoc 文档生成器  从源码注释中提取成文档

      jdb    调试器    调试应用程序和逻辑排查

appletviewer  小程序浏览器  一种执行html文件上的java小程序的java浏览器

      javah    调用器       产生可以调用java过程的C过程,创建能被Java调用的C头文件

      javap    反汇编器    显示编译类文件中的可访问功能和数据,同时显示代码含义

     jconsole     监控器             java进行系统调试和监控的工具

SDK:(software Development Kit)软件开发工具包,一般都是一些软件工程师为特定的软件包、

软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合,JDK只是SDK的一个

子集,比如你下载了软件开发平台 eclipse-SDK-3.2.2-win32.zip(JDK),它本身里面是没有jdk的

但是只要开发java程序就必须使用jdk(javaee和javase)因此仅说SDK,那么它的含义太广,无法

指明是具体哪个开发工具,若加上代名词,如andorid SDK则表示Andorid开发工具包,如java SDK

则表示开发java应用程序的工具包,也就是 JDK ,JDK已经成为使用最广泛的Java SDK(Software development kit)

总结:

如果只想允许java程序,JRE就够了

如果想开发java程序,则需要JDK

如图:SDK 包含 JDK 包含 JRE 包含 JVM

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。
SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。
ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。
没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的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

环境配置

Windows下

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下

在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..0_21
export JRE_HOME=/usr/jdk1..0_21/jre
export PATH=$PATH:/usr/jdk1..0_21/bin
export CLASSPATH=./:/usr/jdk1..0_21/lib:/usr/jdk1..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环境配置完毕

Java体系基本概念的更多相关文章

  1. JAVA的核心概念:接口(interface)

    JAVA的核心概念:接口(interface) 接口与类属于同一层次,实际上,接口是一种特殊的抽象类. 如:    interface IA{ }  public interface: 公开接口  与 ...

  2. JAVA体系的线程的实现,线程的调度,状态的转换

    java体系中线程的实现 1.使用内核线程实现 内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上,每个内核 ...

  3. java io-1基本概念

    java io-1基本概念 2015-07-03 15:17 648人阅读 评论(0) 收藏 举报  分类: [JavaSE](37)    目录(?)[+]   ------------------ ...

  4. Java线程:概念与原理

    Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...

  5. atitit.为什么java体系开发效率这样低的原因and解决

    atitit.为什么java体系开发效率这样低的原因and解决 #---开发理念问题(影响度:很大的,2-3倍效率) mvc<>webform server control ajax< ...

  6. java 线程​基本概念 可见性 同步

    开发高性能并发应用不是一件容易的事情.这类应用的例子包括高性能Web服务器.游戏服务器和搜索引擎爬虫等.这样的应用可能需要同时处理成千上万个请求.对于这样的应用,一般采用多线程或事件驱动的架构.对于J ...

  7. C功底挑战Java菜鸟入门概念干货(一)

    一.认识Java 1.Java 程序比较特殊,它必须先经过编译,然后再利用解释的方式来运行.  2.Byte-codes 最大的好处是——可越平台运行,可让“一次编写,处处运行”成为可能.  3.使用 ...

  8. C功底挑战Java菜鸟入门概念干货(二)

    (接上篇博文:C功底挑战Java菜鸟入门概念干货(一)) 一.Java面向对象程序设计-类的基本形式 1.“类”是把事物的数据与相关的功能封装在一起,形成的一种特殊结构,用以表达对真实世界的一种抽象概 ...

  9. JAVA体系学习-导向

    一:当前学习内容 数值类型处理总结,字符类型处理总结,日期类型处理总结 spring 事务源码分析 spring源码系列 二:当前学习 主攻:并发编程->RPC原理->MQ原理->- ...

随机推荐

  1. c++ 一个h文件里面定义一个主类,然后定义多个子类

    最近遇到一个函数,在调用的时候出现问题,记录下实现过程. #ifndef MLS_DEFORMATION_H #define MLS_DEFORMATION_H #include <vector ...

  2. windows 注册表讲解

    注册表存储结构: 整个注册表内容主要由项(键).值(键值)构成.(通过regedit命令打开注册表) 5个根键: HKEY_CLASSES_ROOT    (缩写HKCR) HKEY_CURRENT_ ...

  3. Mac 卸载 Jenkins

    Jenkins的安装方式不同(Mac 安装 Jenkins),卸载方法也不同. 一.通过安装包安装的卸载方式 打开终端,执行 ~ /Library/Application\ Support/Jenki ...

  4. mysql数据库建立的数据库在哪个文件夹?

    一般在安装目录下的data文件夹下,或者在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\dat ...

  5. Service 中的 onStart 和 onStartCommand

    在自定义的service中,写了onStart和onStartCommand, public class HttpWebService extends Service { @Override publ ...

  6. WPF自定义路由事件(一)

    首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent RegisterRoute ...

  7. DAX Editor VSIX project

    DAX Editor is a Visual Studio extension that implements a language service for DAX language for SQL ...

  8. perl 函数

    文档 函数参数 sub hello{ $len = @args = @_; print "hello @args\n"; } hello('ajanuw', 'alone'); # ...

  9. 错误票据|2013年蓝桥杯B组题解析第七题-fishers

    错误票据 某涉密单位下发了某种票据,并要在年终全部收回. 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号. 你的任务是通过编程,找出断号的ID和重号的ID. ...

  10. SparkContext.union 与 RDD.union

    RDD.union,和SparkContext.union都可以将多个RDD聚合成一个UnionRDD. 但不同的是,RDD.union在每次操作时,会创建一个新的数据集合,生成新的RDD,新的RDD ...