• 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.*;

  • 相关阅读:
    [HDU1561]The more, The Better
    [洛谷P1352][codevs1380]没有上司的舞会
    【51Nod1773】A国的贸易 解题报告
    快速沃尔什变换
    【SDOI2015】序列统计 解题报告
    【CF438E】小朋友和二叉树 解题报告
    多项式Ⅰ
    洛谷 P5105 不强制在线的动态快速排序
    【BZOJ4916】神犇和蒟蒻 解题报告
    【BZOJ3309】DZY Loves Math 解题报告
  • 原文地址:https://www.cnblogs.com/youxin/p/3197558.html
Copyright © 2020-2023  润新知