linux ubuntu安装jdk

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 安装路径下的 jrelib t.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解包,放在jrelibext下。

原因:
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.*;

原文地址:https://www.cnblogs.com/youxin/p/3197558.html