Oracle对Jdk7与Jre7的关系的经典图解

Oracle has two products that implement Java Platform Standard Edition(Java SE)7:Java SE

Development Kit(JDK)7 and Java SE Runtime Environment(JRE)7.

JDK 7 is a superset of JRE 7,and contains everything that is in JRE 7,plus tools such as

the compilers and debuggers necessary for developing applets and applications.JRE 7

provides the libraries,the Java Virtual Machine(JVM),and other components to run applets

and applications written in the java programming language.

总结一下子,就是Java平台分为三个,java se标准平台。java ee企业平台。java me移动平台。。

Oracle甲骨文公司提供了两个工具来实现java se平台。分别是JDK 7 和JRE 7。 一台机子,要想运行Java程序,只需要有JRE (即java runtime environment,Java运行环境)就可以了。但是,如果要进行开发,就得用JDK啦。因为,JDK 是不仅包含了JRE所有的东西。而且,还包含了开发工具,调试工具等等。。。那么,具体内容就是等看下面那个图表了。非常详细的描述了JDK与JRE的结构性质上的差别与联系

Description of Java Conceptual Diagram http://docs.oracle.com/javase/8/docs/index.html

JDK   Java Language
Java Language
   
Tools &
Tool APIs
java javac javadoc jar javap jdeps Scripting
Security Monitoring JConsole VisualVM JMC JFR
JPDA JVM TI IDL RMI Java DB Deployment
Internationalization Web Services Troubleshooting
JRE Deployment
Java Web Start Applet / Java Plug-in
User Interface
Toolkits
JavaFX
Swing Java 2D AWT Accessibility
Drag and Drop Input Methods Image I/O Print Service Sound
Java SE
API
Integration
Libraries
IDL JDBC JNDI RMI RMI-IIOP Scripting
Compact
Profiles
Other Base
Libraries
Beans Security Serialization Extension Mechanism
JMX XML JAXP Networking Override Mechanism
JNI Date and Time Input/Output Internationalization
lang and util
Base Libraries
lang and util
Math Collections Ref Objects Regular Expressions
Logging Management Instrumentation Concurrency Utilities
Reflection Versioning Preferences API JAR Zip
Java Virtual Machine
Java HotSpot Client and Server VM
 

1.下载连接http://java.sun.com/javase/downloads/index.jsp。我下载的是:

linux x86 jdk-7u25-linux-i586.tar.gz

2.在/usr/lib新建一个文件家java,然后把jdk 压缩包解压到这里。

ms@ubuntums:/usr/lib$ mkdir java
mkdir: 无法创建目录"java": 权限不够
ms@ubuntums:/usr/lib$ sudo mkdir java
[sudo] password for ms:

就可以创建java目录了。

ms@ubuntums:~/下载$ sudo tar -xvf jdk-7u25-linux-i586.tar -C /usr/lib/java

要加sudo。-C 解压到指定目录。

通过源代码安装比较麻烦:参考:

http://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7

http://shinephp.com/install-jdk-7-on-ubuntu/

http://blog.csdn.net/yang_hui1986527/article/details/6677450

通过rpm包安装

官网上面只有rpm包下载。

ms@ubuntums:~/下载$ sudo alien --scripts jdk-7u25-linux-i586.rpm
jdk_1.7.025-1_i386.deb generated

ok,现在生成了一个deb的包。

再用dpkg安装deb包(不能用apt-get)

sudo dpkg -i package.deb

就可以安装了。

通过bin安装,现在jdk7官方没有提供bin,但是jdk6有bin。

http://www.oracle.com/technetwork/java/javase/downloads/jdk6u37-downloads-1859587.html

下载bin后:

jdk-6u37-linux-i586.bin

改文件权限为可执行[chmod u+x jdk-6u14-linux-i586.bin]

或者[chmod 701 jdk-6u14-linux-i586.bin]

◆解压文件 [sudo ./jdk-6u14-linux-i586.bin],yes/no选择yes,执行完之后边可

以在develop目录下面看到文件夹jdk1.6.0_14

然后把它移动到usr/lib下:

s@ubuntums:~/下载$ sudo mv jdk1.6.0_37 /usr/lib/java

此时,jdk已安装完毕,下面进行配置
执行

代码:
sudo vi /etc/environment

在environment中修改,出现如下部分

PATH="......:/usr/lib/jvm/java/jdk1.6.0_12/bin"
CLASSPATH=.:/usr/lib/jvm/java/jdk1.6.0_12/lib
JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_12

执行

root@ubuntums:~/下载# source ~/.bashrc

此时,环境变量设置成功(设置环境变量的方法很多,不一一列举)
由于ubuntu中可能会有默认的jdk,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。
执行

sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_37/bin/java 300   

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/java/jdk1.6.0_37/bin/javac 300  

执行结果:

root@ubuntums:~/下载# sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_37/bin/java 300
update-alternatives: 使用 /usr/lib/java/jdk1.6.0_37/bin/java 来提供 /usr/bin/java (java),于 自动模式 中。
root@ubuntums:~/下载#  sudo update-alternatives --install /usr/bin/javac javac /usr/lib/java/jdk1.6.0_37/bin/javac 300

update-alternatives: 使用 /usr/lib/java/jdk1.6.0_37/bin/javac 来提供 /usr/bin/javac (javac),于 自动模式 中。

成功执行命令后(其中300 是alternative的权重值,新更改的权重值需要大于当前的,通过update-alternatives --display java 可以查看),我们安装的JDK就是系统默认的了,执行命令 $  java -version 就可以成功看到 JDK的相关信息了如:

如果默认还是openjdk的,我们把权重值300增加直到最高位置。

root@ubuntums:~/下载# update-alternatives --display java
java - 自动模式
链接目前指向 /usr/lib/java/jdk1.6.0_37/bin/java
/usr/lib/java/jdk1.6.0_37/bin/java - 优先级 300
目前“最佳”的版本为 /usr/lib/java/jdk1.6.0_37/bin/java。
root@ubuntums:~/下载# java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) Server VM (build 20.12-b01, mixed mode)

测试:

public class Hello
{
public static void main(String[] args)
{
System.out.println("hello java");
}
}

root@ubuntums:~/下载# javac Hello.java
root@ubuntums:~/下载# java Hello
hello java

参考:http://persevere.iteye.com/blog/664394

http://blog.missyi.com/page_520.html

http://forum.ubuntu.org.cn/viewtopic.php?t=183803

http://www.cnblogs.com/gaizai/archive/2012/06/12/2545886.html

-----------------------------------------------

登录oracle的网站去下载JDK7

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

下载rpm。

我在/usr/java下安装jdk。下载的是rpm,通过dpgk安装。

修改配置文件

打开配置文件命令

root@fnngj-H24X:  sudo gedit /etc/environment

配置内容如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export JAVA_HOME=/usr/java/java-7-sun

(标红的部分为我们要添加的内容,注意路径,安装版本名称不要写错)

保存后关闭配置文件

要使配置文件生效,需要输入一下:

root@fnngj-H24X:/usr/java#  source /etc/environment

验证

在终端使用echo命令检查环境变量的设置情况

root@fnngj-H24X:/usr/java#  echo $JAVA_HOME
/usr/java/java-7-sun root@fnngj-H24X:/usr/java# echo $CLASSPATH
.:/usr/java/java-7-sun/lib:/usr/java/java-7-sun/jre/lib root@fnngj-H24X:/usr/java#  echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/java/java-7-sun/bin

查看安装的java版本:

root@fnngj-H24X:/usr/java#  java -version
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) Server VM (build 23.6-b04, mixed mode)

使其对所有用户有效

重新打开一个终端,查看java版本

fnngj@fnngj-H24X:~$ java -version
程序 'java' 已包含在下列软件包中:
* default-jre
* gcj-4.6-jre-headless
* gcj-4.7-jre-headless
* openjdk-7-jre-headless
* openjdk-6-jre-headless
请尝试:sudo apt-get install <选定的软件包>

啊!怎么找不到了呢? 因为刚才是用root用户配置的,且关闭终端,配置的作用就消失了。那怎么办?

需要修改profile 文件

root@fnngj-h24x/usr/java#  sudo gedit /etc/profile

打开profile文件,添加如下内容

#set java environment

JAVA_HOME=/usr/java/java-7-sun
export JRE_HOME=/usr/java/java-7-sun/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

修改完成后保存

这个需要重启电脑才能生效。、

参考:http://www.cnblogs.com/fnng/archive/2013/01/30/2883815.html

jdk导入第三方jar包:

CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre\lib\rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。

http://www.cnblogs.com/youxin/p/3966170.html jdbc的例子。

编辑/etc/environment,增加classpath 变量:

增加::$JAVA_HOME/jre/lib/ext/mysql-connector-java-5.1.33-bin.jar

这个方法原因看:http://bbs.csdn.net/topics/10038471

然后source /etc/environment.

然后javac,java。

ok。成功,测试通过。

(找到jar包:

三种方法(选一):
1.在系统中设置classpath(环境变量)
2.在执行java程序时,加classpath参数。
3.将mail.jar解包,放在jre\lib\ext\下。

原因:
mail.jar是打包的,对java来说,包就相当于一个文件夹(文件夹名称就是.jar的文件名),文件夹下面才是类。

如果将打包的类放在classpath中,其实相当于在classpath中又建了一个叫mail文件夹,导致无法找到类。方法三其实就是让java可以在classpath直接找到类。

设置jdk环境变量时lib中的rt.jar ,dt.jar ,tool.jar是什么,作用是什么

这JDK的配置CLASSPATH中的dt.jar和tools.jar这两个文件到底是干什么的,有人说这个dt.jar是关于swing的 打开这个包确实可以看到和swing有关的类,说是如果用到swing就要配置这classpath,但是rt.jar中的swing呢 这个不才是真正的包含swing类库吗? 还有就是这两个包到底是用作开发的类库,还是JDK中的JAVAC等程序运行要的类库。 如果不路径这两个包对我们开发的程序中有什么影响?

———————————————————————————————

答:dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。
而path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等,你在任意的文件夹下面运行cmd键入javac,系统就能自动召见java的编译器就是归功于这个环境变量的设置

rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库

设置在classpath里是为了让你 import *  
———————————————————————————————

web系统都用到tool.jar

你用winrar看看里面是什么内容啦  
---------------------------------------------------------------

1.  
rt.jar 默认就在 根classloader的加载路径里面 放在claspath是多此一举  
不信你可以去掉classpath里面的rt.jar

然后用 java -verbose XXXX 的方式运行一个简单的类 就知道 JVM的系统根Loader的路径里面

不光rt.jar jre/lib下面的大部分jar 都在这个路径里

2.

tools.jar 是系统用来编译一个类的时候用到的 也就是javac的时候用到

javac XXX.java

实际上就是运行

java -Calsspath=%JAVA_HOME%/lib/tools.jar xx.xxx.Main XXX.java

javac就是对上面命令的封装 所以tools.jar 也不用加到classpath里面

3.  
dt.jar是关于运行环境的类库,主要是swing的包 你要用到swing时最好加上

dt.jar好像是swing的一些什么类,Eclipse开发环境默认的JRE也没有包括它。应该没用。
tools.jar应用服务器用来编译JSP文件,应用服务器自己会加载,不需要自己设置。

关于path和classpath的含义:  
1.path变量的含义就是系统在任何路径下都可以识别java,javac命令  
2.classpath变量的含义是告诉jvm要使用或执行的class放在什么路径上,便于JVM加载class文件,.;表示当前路径,tools.jar和dt.jar为类库路径。如果不用Swing里面的东西,可以不加dt.jar。 tools.jar里面是最基本的工具类,比如javac,不加是无法做开发的。

编译和运行需要的都是toos.jar里面的类 , 分别是   
  sun.tools.java.*;   
  sun.tools.javac.*;

linux ubuntu安装jdk的更多相关文章

  1. linux ubuntu 安装jdk

    junluobj@junluobj:~$sudo mkdir /usr/lib/jvmwww.linuxidc.com@linuxidc:~$tar zvxf jdk-8u20-linux-x64.t ...

  2. Linux 下 安装jdk 1.7

    Linux 下 安装jdk 1.7 参考百度经验 http://jingyan.baidu.com/album/ce09321b7c111f2bff858fea.html?picindex=6 第一步 ...

  3. Linux 下安装 jdk压缩包

    按 esc  退出  记得 输入 :q    记得 : Linux下安装jdk 把压缩文件放在 桌面的soft 下 在usr目录下新建文件夹Java,把文件复制到 usr/java 更改下路径! 3 ...

  4. Ubuntu 安装JDK并配置成为默认的JDK

    Ubuntu安装JDK 系统版本:Ubuntu 15.04 x64 JDK版本:jdk-8u60-linux-x64 1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应 ...

  5. Ubuntu 安装 JDK 7 / JDK8 的两种方式

    ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 使用pp ...

  6. linux 下安装jdk及配置jdk环境图解

    linux 下安装jdk及配置jdk环境图解 一:先检測是否已安装了JDK 运行命令: # rpm -qa|grep jdk  或   # rpm -q jdk  或  #find / -name j ...

  7. Ubuntu安装JDK与环境变量配置

    Ubuntu安装JDK与环境变量配置 一.getconf LONG_BIT 查看系统位数,并下载相应的jdk.我的系统是32位的,所以下载的jdk是:jdk-8u77-linux-i586.gz.并且 ...

  8. Linux自动安装JDK的shell脚本

    Linux自动安装JDK的shell脚本 A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在 ...

  9. Linux下安装JDK,Tomcat,Mysql详细教程

    1. 概述 今天教大家在linux下安装jdk,mysql以及tomcat.在javaweb开发中,最后完成的项目代码,一般都是布在linux服务器下的.因为linux服务器可以说是安全性稳定性都比w ...

随机推荐

  1. 模拟美萍加密狗--Rockey2虚拟狗(一)

    目录(?)[+]   最近受朋友之托做了一个美萍智能电源控制的插件.美萍茶楼从2010版开始支持智能电源控制设备,就是开单.结账时自动开关相应房间的电器,不过官方的设备是有线的.朋友的店已经开了一段时 ...

  2. DataList嵌套绑定例子

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataList控件.asp ...

  3. Effective C++ 条款39

    我从本条款中学到了下面内容: 1.private继承不同于另外两种继承,派生类对象不能隐式转换为基类对象. 例如以下代码: class Bird//鸟 { }; class ostrich:priva ...

  4. openstack之keystone

    一.什么是keystone 用于为openstack家族中的其它组件成员提供统一的认证服务,包括身份认证.令牌发放和校验.服务列表.用户权限定义等: 基本概念: 用户User:用于身份认证.一个用户可 ...

  5. Ext JS学习第三天 我们所熟悉的javascript(二)

    •javascript之函数 •对于Ext开发者,我还是希望你能对javascript原生的东西非常了解.甚至熟练掌握运用.那么函数,无疑是非常重要的概念.首先在前面一讲,我们知道了函数也是一种数据类 ...

  6. No.2小白的HTML+CSS心得篇

    今天要强调的重点是分析把握好HTML标签的两个方面: 1.标签的用途(用途指的是用来干什么,有什么作用)在专业术语叫作 语义化. 举个列子:<br/> 换行的作用 见了它就明白它的语义就是 ...

  7. Sublime 操作技巧

    吐槽一下:刚下载的subime不是等宽字体,空格.表达.字母i什么的都很窄,看着不方便: 根据网上说的换成等宽字体,试了好多种字体,字体变了.但宽度没变. 然后有装了soda,和相应的color-th ...

  8. Onvif协议

    ONVIF致力于通过全球性的开放界面标准来推进网络视频在安防市场的应用,这一接口界面标准将确保不同厂商生产的网络视频监控产品具有互通性.2008年11月,论坛正式发布了ONVIF第一版规范ONVIF核 ...

  9. jmeter 压力测试 参数

    Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...

  10. java中printf中用法详解

    目前printf支持以下格式: %c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 %% 输出百分号% printf的格式控制的 ...