刚刚复习完C++, 现在又马不停蹄地学起java了。要问我为什么这么快又想学java,我只能说C++的拳头开源软件太少了,没有java那么丰富,各种框架,各种架构等。我想尽快的学习各种架构设计,深入了解一下传说中的jvm,然后动手做点东西出来。在我看来,java特别适合做大型软件(web服务,大数据处理等),而C++特别适合系统级开发(操作系统级别,游戏,图像处理等),这里并非想挑起语言圣战,只是表达一下自己的看法而已。
看了《java core》的前5章,发现java有太多太多的特性与C++相似了,好像就在C++的基础来换了个皮,然后将各种C++中“坑”填起来,java中的语法糖真的很少,很适合刚入门的IT新人学习,这或许也是为什么很多大学的语言入门课程都选入java的原因吧。我想过段时间就java中与c++的不同点写点文章,供从C++过度到java的朋友参考。
说了这么多应该进入主题了“安装jdk”。我用的操作系统是linux,发行版是linuxmint17.2,基于ubuntu14.04二次开发的。详细安装步骤如下:
1.下载jdk1.8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
注意,选择其中的jdk-8u65-linux-x64.tar.gz下载。
2.解压缩到/usr/lib/jvm
为什么一定要解压到这个文件夹呢?其实并不是必须的,不过系统自带的openjdk就放在这么目录下面,而且很多网友都放在该目录下面,所以为了兼容等一系列的问题,还是乖乖放在这么目录里面吧。
在存放下载文件的当前目录输入:
sudo tar -xzvf jdk* -C /usr/lib/jvm
注意一定要用root权限哦,不然有些文件无法解压。
解压后的效果:
2.设置update-alternatives
update-alternatives命令是用来解决系统中多个相同功能的程序设置的。比如系统中有vim,emacs,nano,gedit等编辑器,这些程序功能相近,要是能给他们这一类程序起个通用名editor,然后只需要在终端中输入editor就可以完成编辑功能该多好了。editor具体启动的哪个程序由各个用户随意设定。对!update-alternatives就是干这个事情的。如何使用update-alternatives呢?你可以man一下,或者你可以听我简单的介绍一下用法。
1)首先要介绍的参数是 --display。它使我们可以看到一个命令的所有可选命令。执行:
update-alternatives --display editor
可以看到我的机器上的所有可以用来被 editor 链接的命令。
2)--config。这个选项使我们可以选择其中一个命令程序来作为editor,执行:
update-alternatives --config editor
首先,update-alternatives 在一般情况下是由postinst 和 prerm 这样的安装脚本自动调用的,所以一个 alternative 的状态有两种:自动和手动。每个 alternative 的初始状态都是自动。如果系统发现管理员手动修改了一个 alternative,它的状态就从自动变成了手动,这样安装脚本就不会更新它了。如果你希望将一个 alternative 变回自动,只要执行代码:
update-alternatives --auto editor
general name -- 这是指一系列功能相似的程序的“公用”名字(包括绝对路径),比如 /usr/bin/editor。
link -- 这是指一个 alternative 在 /etc/alternative 中的名字,比如 editor。
alternative -- 顾名思义,这是指一个可选的程序所在的路径(包括绝对路径),比如 /usr/bin/vim。
-auto,--display 和 --config 跟的都是 link。我们要说的第三个概念是优先级。这个比较简单,当然优先级越高的程序越好啦。最后一个概念是主和从的 alternative。想想看,你将 /usr/bin/editor 链接到了 vim,可是当你执行 man editor 时看到的却是 emacs 的 manpage,你会做何感想呢?这就引出了主和从 alternative 的概念了:当更新主的 alternative 时,从的 alternative 也会被更新。
另外两个选项:
第一个是 --install。它的格式是: 代码:
update-alternatives --install gen link alt pri [--slave sgen slink salt] ...
gen,link,alt,pri 分别是我们上面说过的。如果需要从的 alternative,你可以用--slave 加在后面。如果你在向一个已经存在的 alternative 组中添加新的 alternatives,该命令会把这些 alternatives 加入到这个已经存在的 alternative 组的列表中,并用新的可选命令作为新的命令;否则,将会建立一个新的自动的 alternative组。
呜呼!我加入了一个错误的 alternative。我不想要这个 alternative 了。在这种情况
下,可以执行下面的命令:代码:
update-alternatives --remove name path
我们下面实战一下:以editor为列子
首先设置一个editor组:
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim.nox
其实这个命令就是在/etc/alternatives目录下面新建了一个editor的软连接,然后指向/usr/bin/vim.nox,再在/usr/bin目录下面建立editor软连接,指向/etc/alternatives下面的editor。
这个过程update-alternatives帮你实现了。
我们看一下图:
需要说明的是如果系统里没有editor组,那么这条命令将为你新建一个editor组,如果有的话,则将vim.nox加入到editor组中。
我系统中的editor组:
可以看到有ed,nano,vim,emacs这些编辑器。目前link指向vim.nox,如何设置为emacs呢?
输入:sudo update-alternatives --config editor
然后根据提示,你就可以完成更改了。
下面让我们来设置一下java的update-alternatives:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_65/bin/java 3000 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_65/bin/javac 3000 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0_65/bin/jar 3000 sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk1.8.0_65/bin/javah 3000 sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.8.0_65/bin/javap 3000
3.设置java环境变量
在/etc/profile中添加:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
注意等号两边不能又空格(吐槽一下:shell真是反人类,还是python写脚本好)
4.检测一下目前的java设置成功与否
type:
java -version
看到上图就说明正确了!!!
5.简单使用一下javac和java命令,确保没问题
新建java源程序:
然后保存,在终端中输入:
javac HelloWorld.java
java HelloWorld
看是否成功输出!!!