在linux上安装JDK碰到的问题以及linux常用命令的学习
2012-10-23 23:26
1151 查看
操作系统:ubuntu 12.04
一、在oracle官网上下载最新版本的JDK : jdk-6u37-linux-x64.bin
下载之后默认放在了 /home/myname/下载 目录下 由于目录有中文,之前遇到过目录带中文的种种纠结问题,不想放在这里,于是在命令行
myname@myname-PC:~$ sudo mv /home/myname/下载/jdk-6u37-linux-x64.bin /opt
对以上命令的解释:
1)$符后面是输入linux命令的地方,命令和$符之间有一个空格区域
2)$和:之间表示当前所在目录,
3)~代表用户目录,和cd命令结合使用可以方便的进到用户目录, 例如 cd ~ 也可以这样 cd $HOME $HOME也表示用户目录,这个HOME变量的值是在配置文件里设置的
4)命令前缀sudo : superuserdo的缩写 表示以超级用户(系统管理员)身份运行后面的命令,如果我们不是用超级用户(系统管理员)的身份登录的系统,应用一些命令时会受到限制,提示 权限不足 前面加上sudo就可以解决这个问题
5)命令mv:这里有两个参数,第一个参数是/home/myname/下载/jdk-6u37-linux-x64.bin,表示你要移动的文件,用完全路径表示比较好,第二个参数是/opt,表示你移动文件的目标目录, 两个参数之间有空格分隔
6)前面myname表示当前用户名,后面myname-PC表示计算机名,用@连接
把JDK的安装文件移动到/opt以后, 进入opt目录,输入命令后回车
myname@myname-PC:~$ cd /opt 回车
myname@myname-PC:/opt$
cd命令:进入指定的目录 例如: cd /(进入系统根目录),cd /home(进入系统根目录下的home目录),cd $HOME(进入HOME变量表示的目录,即用户目录,
与 cd ~等效),cd ..(从当前目录向上退一级)
给/opt下面的文件赋权限:
myname@myname-PC:/opt$ chmod 755 *
chmod命令:给文件赋权限,在/opt下ll一下可以看到:
drwxr-xr-x 8 root root 4096 10月 23 12:08jdk1.6.0_37/
-rwxr-xr-x 1 gchong gchong 72048548 10月 23 12:01 jdk-6u37-linux-x64.bin
对于第一行最高位 d表示这是一个目录,对于第二行最高位 -表示这是一个文件 ,后面r表示可读,w表示可写,x表示可执行,-表示无权限,不清楚为什么有三组权限,每一组权限有三位,由低到高分别是2的0次幂,1次幂,2次幂,所以权限rwx:4+2+1=7 r-x:4+0+1=5
r-x:4+0+1=5
再看上面的命令 chmod 755 * 就是给当前目录下的所有内容(包括文件和目录)赋rwxr-xr-x权限
其实我们要的就是可执行权限, 只要赋x权限就可以了, 下面是执行这个下载的文件
myname@myname-PC:/opt$ ./jdk-6u37-linux-x64.bin “.” 表示当前目录
二、运行后会提示安装成功的字样,在window系统里安完JDK就要修改一下环境变量path的值,一边我们能正常使用java,javac命令,而在linux系统下会复杂一点,linux环境下和环境变量有关的文件有以下四种,粗略记录如下
1) /etc/environment 文件
2) /etc/profile 文件
3) ~/.profile 文件
4) ~/.env 文件 我不确定是不是在~目录下(用户目录)
他们的区别,前三个文件只有在登录系统以后才被读取,且读取这一次, 而.env文件是在用户没开一个进程都会被执行一次,它们的读取顺序就是1 2 3 4 这样
详细内容查阅 : http://blog.chinaunix.net/uid-15194453-id-3012479.html
我在environment下面加入
JAVA_HOME="/opt/jdk1.6.0_37"
PATH=“$PATH:$JAVA_HOME/bin”
CLASSPATH=".:$JAVA_HOME/lib"
总觉得没什么问题,但是重启电脑后, ubuntu就登不上去了, 在网上找也说最好别再environment下修改环境变量, 容易悲剧。。。
配置完环境变量以后, 在命令行输入 java -ersion 有的机器可以看到JDK的版本信息,代表安装成功:
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
而有的机器则会出现这样的信息:
程序“java”已包含在下列软件包中:
* gcj-4.4-jre-headless
* gcj-4.5-jre-headless
* openjdk-6-jre-headless
请尝试:apt-get install <选定的软件包>
这是由于之前安装过JDK,或者安装过其他带有java环境的软件自动安装了软件带有的JDK, 这样就导致我们的系统里存在多个JDK,它们的版本可能相同,也可能不同,
对于这种情况,linux是用update-alternatives命令解决的,update-alternatives 命令是管理软件多版本的工具
三、update-alternatives命令
update-alternatives --install /usr/bin/java java /opt/jdk1.6.0_37/bin/java
解释: 给alternatives安装一个符号链接/usr/bin/java,他的名字是 java 对应的可执行应用程序路径:/opt/jdk1.6.0_37/bin/java
在命令行我们输入命令:
myname@myname-PC:~$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 10月 23 21:58 /usr/bin/java -> /etc/alternatives/java
可以发现, /usr/bin/java 是指向 /etc/alternatives/java 的
再输入
myname@myname-PC:~$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 25 10月 23 21:58 /etc/alternatives/java -> /opt/jdk1.6.0_37/bin/java
可以发现,/etc/alternatives/java 也是个符号链接, 是指向 /opt/jdk1.6.0_37/bin/java 的, 这才是最终的可执行文件
update-alternatives --display java :显示java在alternatives里的配置信息
update-alternatives --config java : 配置java对应的符号链接
There are 2choices for the alternative jdk (providing /usr/bin/jdk).
Selection Path Priority Status
--------------------------------------------------------------------------
0 /home/haili/jdk1.5.0_22 255 auto mode
1 /home/haili/jdk1.5.0_22 255 manual mode
* 2 /home/haili/jdk1.6.0_30 254 manual mode
这是网上的例子, 大概情况差不多, 选择你想使用的命令的link值
update-alternatives –remove java /opt/jdk1.6.0_37/bin/java 删除这个java命令的配置
在命令行输入的命令, 都是一个链接符号:
比如 java
命令行中的java只是一个链接符号, 先被链接到/usr/bin中, 在这个目录下找有没有java,这也是为什么我们要要设置环境变量path, path="/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/usr/games"
然后 /usr/bin/java 也是一个符号链接, 链接到/etc/alternatives/java, 它仍然是个符号链接, 最终
/etc/alternatives/java链接到实际的程序 /opt/jdk1.6.0_37/bin/java
一、在oracle官网上下载最新版本的JDK : jdk-6u37-linux-x64.bin
下载之后默认放在了 /home/myname/下载 目录下 由于目录有中文,之前遇到过目录带中文的种种纠结问题,不想放在这里,于是在命令行
myname@myname-PC:~$ sudo mv /home/myname/下载/jdk-6u37-linux-x64.bin /opt
对以上命令的解释:
1)$符后面是输入linux命令的地方,命令和$符之间有一个空格区域
2)$和:之间表示当前所在目录,
3)~代表用户目录,和cd命令结合使用可以方便的进到用户目录, 例如 cd ~ 也可以这样 cd $HOME $HOME也表示用户目录,这个HOME变量的值是在配置文件里设置的
4)命令前缀sudo : superuserdo的缩写 表示以超级用户(系统管理员)身份运行后面的命令,如果我们不是用超级用户(系统管理员)的身份登录的系统,应用一些命令时会受到限制,提示 权限不足 前面加上sudo就可以解决这个问题
5)命令mv:这里有两个参数,第一个参数是/home/myname/下载/jdk-6u37-linux-x64.bin,表示你要移动的文件,用完全路径表示比较好,第二个参数是/opt,表示你移动文件的目标目录, 两个参数之间有空格分隔
6)前面myname表示当前用户名,后面myname-PC表示计算机名,用@连接
把JDK的安装文件移动到/opt以后, 进入opt目录,输入命令后回车
myname@myname-PC:~$ cd /opt 回车
myname@myname-PC:/opt$
cd命令:进入指定的目录 例如: cd /(进入系统根目录),cd /home(进入系统根目录下的home目录),cd $HOME(进入HOME变量表示的目录,即用户目录,
与 cd ~等效),cd ..(从当前目录向上退一级)
给/opt下面的文件赋权限:
myname@myname-PC:/opt$ chmod 755 *
chmod命令:给文件赋权限,在/opt下ll一下可以看到:
drwxr-xr-x 8 root root 4096 10月 23 12:08jdk1.6.0_37/
-rwxr-xr-x 1 gchong gchong 72048548 10月 23 12:01 jdk-6u37-linux-x64.bin
对于第一行最高位 d表示这是一个目录,对于第二行最高位 -表示这是一个文件 ,后面r表示可读,w表示可写,x表示可执行,-表示无权限,不清楚为什么有三组权限,每一组权限有三位,由低到高分别是2的0次幂,1次幂,2次幂,所以权限rwx:4+2+1=7 r-x:4+0+1=5
r-x:4+0+1=5
再看上面的命令 chmod 755 * 就是给当前目录下的所有内容(包括文件和目录)赋rwxr-xr-x权限
其实我们要的就是可执行权限, 只要赋x权限就可以了, 下面是执行这个下载的文件
myname@myname-PC:/opt$ ./jdk-6u37-linux-x64.bin “.” 表示当前目录
二、运行后会提示安装成功的字样,在window系统里安完JDK就要修改一下环境变量path的值,一边我们能正常使用java,javac命令,而在linux系统下会复杂一点,linux环境下和环境变量有关的文件有以下四种,粗略记录如下
1) /etc/environment 文件
2) /etc/profile 文件
3) ~/.profile 文件
4) ~/.env 文件 我不确定是不是在~目录下(用户目录)
他们的区别,前三个文件只有在登录系统以后才被读取,且读取这一次, 而.env文件是在用户没开一个进程都会被执行一次,它们的读取顺序就是1 2 3 4 这样
详细内容查阅 : http://blog.chinaunix.net/uid-15194453-id-3012479.html
我在environment下面加入
JAVA_HOME="/opt/jdk1.6.0_37"
PATH=“$PATH:$JAVA_HOME/bin”
CLASSPATH=".:$JAVA_HOME/lib"
总觉得没什么问题,但是重启电脑后, ubuntu就登不上去了, 在网上找也说最好别再environment下修改环境变量, 容易悲剧。。。
配置完环境变量以后, 在命令行输入 java -ersion 有的机器可以看到JDK的版本信息,代表安装成功:
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
而有的机器则会出现这样的信息:
程序“java”已包含在下列软件包中:
* gcj-4.4-jre-headless
* gcj-4.5-jre-headless
* openjdk-6-jre-headless
请尝试:apt-get install <选定的软件包>
这是由于之前安装过JDK,或者安装过其他带有java环境的软件自动安装了软件带有的JDK, 这样就导致我们的系统里存在多个JDK,它们的版本可能相同,也可能不同,
对于这种情况,linux是用update-alternatives命令解决的,update-alternatives 命令是管理软件多版本的工具
三、update-alternatives命令
update-alternatives --install /usr/bin/java java /opt/jdk1.6.0_37/bin/java
解释: 给alternatives安装一个符号链接/usr/bin/java,他的名字是 java 对应的可执行应用程序路径:/opt/jdk1.6.0_37/bin/java
在命令行我们输入命令:
myname@myname-PC:~$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 10月 23 21:58 /usr/bin/java -> /etc/alternatives/java
可以发现, /usr/bin/java 是指向 /etc/alternatives/java 的
再输入
myname@myname-PC:~$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 25 10月 23 21:58 /etc/alternatives/java -> /opt/jdk1.6.0_37/bin/java
可以发现,/etc/alternatives/java 也是个符号链接, 是指向 /opt/jdk1.6.0_37/bin/java 的, 这才是最终的可执行文件
update-alternatives --display java :显示java在alternatives里的配置信息
update-alternatives --config java : 配置java对应的符号链接
There are 2choices for the alternative jdk (providing /usr/bin/jdk).
Selection Path Priority Status
--------------------------------------------------------------------------
0 /home/haili/jdk1.5.0_22 255 auto mode
1 /home/haili/jdk1.5.0_22 255 manual mode
* 2 /home/haili/jdk1.6.0_30 254 manual mode
这是网上的例子, 大概情况差不多, 选择你想使用的命令的link值
update-alternatives –remove java /opt/jdk1.6.0_37/bin/java 删除这个java命令的配置
在命令行输入的命令, 都是一个链接符号:
比如 java
命令行中的java只是一个链接符号, 先被链接到/usr/bin中, 在这个目录下找有没有java,这也是为什么我们要要设置环境变量path, path="/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/usr/games"
然后 /usr/bin/java 也是一个符号链接, 链接到/etc/alternatives/java, 它仍然是个符号链接, 最终
/etc/alternatives/java链接到实际的程序 /opt/jdk1.6.0_37/bin/java
相关文章推荐
- linux安装jdk tomcat nginx 以及常用命令
- linux问题-Redis的安装以及常用命令
- Linux 安装JDK和Tomcat以及常用命令
- 【JAVAWEB学习笔记】26_Linux基础:简介安装、常用命令和JDK、Mysql、Tomcat的安装
- Linux常用yum命令—安装、升级、卸载、软件包查询、软件组管理命令、以及升级、卸载需要注意的问题
- Linux基础(虚拟机搭建&常用命令&mysql安装以及Jdk安装)
- JAVAWEB开发之——Linux命令实战、虚拟机和centos的安装以及联网、常用命令、vi编辑以及软件的安装、sftp的使用
- linux安装httpd时遇到的APR (APR-util,pcre)not found的问题, 以及make时碰到的问题
- Linux 学习笔记 (三)Ubuntu 安装JDK1.6 以及tomcat7.0
- Linux之CentOS--Nginx的安装、测试详解以及关于Nginx的常用命令介绍
- Linux安装jdk1.8以及出现的问题
- *Linux常用命令学习1---(安装、文件系统、目录操作命令cd ls mv cp rm mkdir、链接命令ln……)
- day04 - linux常用命令、目录说明以及ubuntu解锁root用户,安装tree命令
- 【linux学习笔记之一】linux系统目录结构以及常用系统命令
- Linux 常用命令和目录 安装jdk eclipse myeclipse
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装以及操作redis问题整理
- linux常用命令以及安装操作
- Linux学习以及常用命令汇总大全
- Linux + tomcat问题处理以及Linux常用命令
- linux个人学习过程中常用命令及问题记录