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
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后:
改文件权限为可执行[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已安装完毕,下面进行配置
执行
在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.*;