Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140239
  • 博文数量: 19
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 239
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-01 12:47
文章分类
文章存档

2014年(5)

2013年(4)

2012年(10)

分类: Java

2014-03-08 13:40:17

debian中默认不会装jdk,但会装openjdk的jre,因为一些软件运行需要,默认安装jdk可以装openjdk,是由GNU下的一个项目,基本和oracle的jdk一样,如果用apt-get install安装的话,会安装在/usr/lib/jvm下。
我出于好奇就安装了openjdk7,然后我没有配置环境变量,首先是我不知道它的环境变量在哪里?其次我也不知道它安装在了哪里,是否需要配置环境变量。(这里逻辑混乱了)然后我就先在命令行下看看有没有,我先敲了which java  ,安装过的人应该知道它会显示在/usr/bin/java,显然我觉得这有问题了,果然我ls -l 就可以看到它是个链接。我敲java -version 、java、javac都可以,没有问题,这样看来我觉得莫非真的可以就这样直接使用了?我就开始写了著名的例子HelloWorld,接着就是中规中矩的javac,顺利编译通过,当我java的时候问题发生了,提示出错了,我没有记住那个错误,现在想想应该是版本的错误导致的,因为我是从网络镜像安装的squeeze然后升级到wheezy的,应该是因为有openjdk6的jre导致的,然后我就想既然openjdk7有问题了,那么我就安装sun的jdk,找到以前在oracle官网上下来的jdk,我就安装上了,步骤很简单:
su 进入root 比较懒 还没添加组,所以没用sudo
cd /usr/lib/jvm
ls -l
tar -zxvf /home/path/jdkversion.tar.gz
mv jdkversion/ java-7-sun
安装好后配置/etc/profile

正常安装jdk时候只需要配置环境变量就可以了:
#set java environment
export JAVA_HOME=/usr/lib/jvm/java-7-sun
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

然后source发现没效果,我就reboot了,回来java -version 提示找不到,我觉得应该不是我配置错了,如果是我配置错了,那么可能机器都打不开了,然后我就搜索了一番,发现好多人都卸载了openjdk,然后安装的,但我觉得应该不是这样的,我一时又没找到办法,有的人也说了需要安装多个jdk的时候,但是我还是没明白(我以为我没明白),心想先试一试简单的吧,我就:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 1160
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 1160
update-alternatives --config java
update-alternatives --config javac
配置好了之后,我发现还不行,重启后java -version 依然不行,我有点小失望啊
后来看了下update-alternatives好像说需要弄软连接和路径,我就弄了个java-7-sunjdk-amd64
ln -s javaversion java-7-sunjdk-amd64
然后又来了一遍
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sunjdk-amd64/bin/java 1160
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sunjdk-amd64/bin/javac 1160
update-alternatives --config java
update-alternatives --config javac
发现依然不好使,而且多了一些重复的,我就比较爱干净,又看了看手册,发现
update-alternatives --remove java /usr/lib/jvm/java-7-sun/bin/java
这样我就把java、javac中的java-7-sun和openjdk7的链接都删除了
还通过查找和手册知道,那些安装的就是在/usr/bin/下的命令(也是软链接)会在/etc/alternatives下有对应的安装的链接name,这样都了解一遍后知道原来就是相当于我们安装了一个软链接,然后再在系统可以找到的PATH中也用软链接的方式连了过去,这样的好处就是可以安装多个,并且可以用alternatives(debian这里没有,可能需要安装)和update-alternatives来管理,可以设置默认,手动自动等,这样我发现我的修改没有错,后来突然看到一个帖子给我启发了,他说他开始安装的是X64的,才发现应该安装X86的,而我终于意识到我用的是我以前的,以前那个机器是X86的,现在这个安装的是amd64的,应该安装X64的才对,发现了就立即改正,重新下载了一个jdk,安装好后,懒得去改名字了jdk1.7.0_17,刚好刚才我模仿openjdk的结构创建了一个软连接,profile和update-alternatives都是改成了软连接的名字了,我直接rm现在的,重新创建了一个指向新的X64的jdk的同名的链接,直接java -version、java、javac都可以了,错误犯的比较低级,记录
/* author:YDJX date:04-07-2013 16:29:44 annotation:  */
阅读(1390) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~