[笔记]我的Linux入门之路 - 03.Java环境搭建
其实ubuntu是自带一个叫openJDK的东西的,是谷歌看Oracle不爽而搞的。不过呢。。。总感觉不太习惯,况且我既然都来Linux了,总是想折腾一把的。
首先先检查下有没有安装java。终端输入java -version
,若出现以下字段则说明未安装。
The program ‘java’ can be found in the following packages:
* default-jre
* gcj-4.6-jre-headless
* openjdk-6-jre-headless
* gcj-4.5-jre-headless
* openjdk-7-jre-headless
Try: sudo apt-get install
一、下载
Java SE Development Kit 8 官网
选择对应系统的jdk下载。会发现有rpm和tar.gz两种格式。ubuntu不支持rpm所以下载tar.gz版本。(要安装rpm的包,则要先用alien把rpm转换成deb,这里我用的tar.gz,就讲这个)。
比如我下载在了默认的Downloads文件夹,即/home/xienaoban/Downloads/目录。名字叫jdk-8u121-linux-x64.tar.gz。
二、解压
tar是个打包格式,gz即gzip是种压缩格式。那要安装它就要先解压。先用文件(Files)双击打开这个包看看,没有找到什么setup、install字样的文件,说明是解压即用的那种类型。(如果有install什么的文件就更方便了,就像win下面安装软件的exe一样,或者也可能是个sh脚本)
首先想一个安装路径,路径随意,自己喜欢就好。我选择了/usr/local/lib/java/路径。
系统本身没有java文件夹,所以要先创建个。首先打开终端:
sudo mkdir /usr/local/lib/java
以创建java文件夹(若你选择的路径无需创建则跳过该步骤);
cd ~/Downloads/
定位到jdk下载的目录。“~”相当于“/home/xienaoban”;
sudo tar -zxvf eclipse-inst-linux64.tar.gz -C /usr/local/lib/java
意思是使用管理员权限,使用tar命令的zxvf操作将jdk安装包解压到安装路径。-zxvf中,-z是配合解压.GZ的 ,-x是解开一个包文件,-v显示详细信息,-f是必须的,表示使用归档文件,合并起来意思也很明显了。-C dir参数的作用在于改变工作目录,即改变了解压的路径。
于是就解压好了。可以用ls -l /usr/local/lib/java
查看目录下是否有jdk1.8.0_121目录。(ls:list,列出目录内的文件夹与子目录,-l:显示详细信息),没错的话会找到以下这条(当然时间什么的信息会不同):
drwxr-xr-x 8 uucp 143 4096 12月 13 08:50 jdk1.8.0_121
三、配置环境变量
1.修改bashrc或profile文件
方法有两个,一个是编辑~/.bashrc
文件,一个是编辑/etc/profile
文件。两者效果一样!网上针对两者的教程都有,任选其一即可!所以一开始搞得我一脸懵逼。我选择了编辑profile文件。
sudo gedit /etc/profile
, 用gedit打开profile文件并编辑(用其他文本编辑器如vim也随意),在文末添加如下代码:
export JAVA_HOME=/usr/local/lib/java/jdk1.8.0_121
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
当然,路径如果和我的不一样的话改成自己的安装路径。其实只要改JAVA_HOME就行。网上看到有人四个变量全用的绝对路径,这不好,尽量不要用硬编码,改起来也麻烦。注意CLASSPATH后面是“.:”,我没有写错。
2.设置默认JDK 版本
然后再执行以下五句update-alternatives
以设置系统默认JDK 版本(记得修改自己的目录):
# java和javac必须配置
sudo update-alternatives --install /usr/bin/java java /usr/local/lib/java/jdk1.8.0_121/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/local/lib/java/jdk1.8.0_121/bin/javac 300
# 以下可以不配置
sudo update-alternatives --install /usr/bin/jar jar /usr/local/lib/java/jdk1.8.0_121/bin/jar 300
sudo update-alternatives --install /usr/bin/javah javah /usr/local/lib/java/jdk1.8.0_121/bin/javah 300
sudo update-alternatives --install /usr/bin/javap javap /usr/local/lib/java/jdk1.8.0_121/bin/javap 300
其中:每个指令最后的参数300代表着优先级,我看也有教程选择50的。还有java和javac是必须配置的,后面的几条,看到别人的说法是“如果你无聊,也可以把javah等等也给配置上”。。。所以你会发现不同的教程update-alternatives的数量还不一样。这里一并说明下。
参考链接
3.更新config
最后再执行sudo update-alternatives --config java
与sudo update-alternatives --config javac
更新config,当然如果是第一次安装会提示
There is only one alternative in link group java (providing /usr/bin/java): /usr/local/lib/java/jdk1.8.0_121/bin/java
Nothing to configure.
那就不用管了,否则选择你要的版本。
4.配置系统环境变量(可不做)
看到有教程还要“配置系统环境变量”,即在/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/jdk
export JRE_HOME=${JAVA_HOME}/jre
但是也有很多教程没有做这一项,我也没做。查了一下区别就是这个步骤是针对整个系统的,而更改profile是针对所有用户的(看上去不一样但实际结果上没啥区别)。所以这个步骤不执行也没有问题。
etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。一般用于设置所有用户使用的全局变量。
/etc/bashrc: 当 bash shell 被打开时,该文件被读取。也就是说,每次新打开一个终端 shell,该文件就会被读取。
~/.bash_profile 或 ~/.profile: 只对单个用户生效,当用户登录时该文件仅执行一次。用户可使用该文件添加自己使用的 shell 变量信息。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是 ~/.bash_profile, ~/.bash_login 或 ~/.profile 其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如 Ubuntu 系统一般是 ~/.profile 文件。
~/.bashrc: 只对单个用户生效,当登录以及每次打开新的 shell 时,该文件被读取。
此外,修改 /etc/environment 这个文件也能实现环境变量的设置。/etc/environment 设置的也是全局变量,从文件本身的作用上来说, /etc/environment 设置的是整个系统的环境,而/etc/profile是设置所有用户的环境。有几点需注意:
系统先读取 etc/profile 再读取 /etc/environment(还是反过来?)
/etc/environment 中不能包含命令,即直接通过 VAR=”…” 的方式设置,不使用 export 。
使用 source /etc/environment 可以使变量设置在当前窗口立即生效,需注销/重启之后,才能对每个新终端窗口都生效。
四、安装完成
输入java -version
可以查看java有没有安装成功。若成功,会跳出以下文字:
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
[笔记]我的Linux入门之路 - 03.Java环境搭建的更多相关文章
- [笔记]我的Linux入门之路 - 04.Eclipse安装
首先,要安装ecliose自然是先要有Java环境.在上一篇已经安装好了,不再赘述. 一.下载 Eclipse官网 下载下来的文件":eclipse-inst-linux64.tar.gz ...
- [笔记]我的Linux入门之路 - 01.Ubuntu安装
最近学机器学习,感觉matlab/octave用的人不多,想改用python.于是开始学python,辛辛苦苦学会了自己装环境和装第三方库,结果发现scipy库竟然没有win版本!于是想着那我得装个l ...
- [笔记]我的Linux入门之路 - 02.***-Qt5配置
作为一个学习中的程序员,查wiki等,***肯定是刚需.况且没有它很多东西都下不下来.我在windows环境下使用的是shadowsocks,那么在linux下也使用它. 一.SS版本 SS版本众多, ...
- [笔记]我的Linux入门之路 - 05.Eclipse的Python开发环境搭建与Numpy、Scipy库安装
一.Python环境 直接终端查询下python安装没:python --version Python 2.7.12 Ubuntu竟然已经装了Python2.7,那就好说了.不然自己装和装jdk差不多 ...
- Java从入门到放弃——01.Java 环境搭建
本文目标: 下载与安装JDK 配置Java环境 1.JDK9下载: 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jav ...
- opencv笔记1:opencv的基本模块,以及环境搭建
opencv笔记1:opencv的基本模块,以及环境搭建 安装系统 使用fedora22-workstation-x86_64 安装opencv sudo dnf install opencv-dev ...
- 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建
Xamarin.Android 入门之:Xamarin+vs2015 环境搭建 一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客 ...
- Linux配置mysql (centos配置java环境 mysql配置篇 总结四)
♣安装的几种方法和比较 ♣配置yum源 ♣安装mysql ♣启动mysql ♣修改密码 ♣导入.sql文件 ♣缓存设置 ♣允许远程登录(navicat) ♣配置编码为utf8 1.关于Linux系统 ...
- Linux配置tomcat (centos配置java环境 tomcat配置篇 总结三)
♣下载安装tomcat7 ♣设置启动和关闭 ♣设置用户名和密码 ♣发布java web项目 声明:这篇教程是建立在前两篇教程的基础上的,所以,还没安装工具和jdk,可以先看这个系列的前面两篇(去到文末 ...
随机推荐
- Unity3d在Window上使用SAPI进行语音识别
前言 在之前<Unity利用Sapi进行windows语音开发>中,本计划不准备继续做语音识别.因为在unity3d中已经提供了语音识别的相关方法,详见unity3d的官方文档:https ...
- IOS开发创建开发证书及发布App应用(八)——使用Application Loader工具上传应用
8.使用Application Loader工具上传应用 继续第七步在iTunes所创建的应用,打开应用,如下图 点击详情按钮进去之后,单击右上角Ready to Upload Binary按钮,如下 ...
- 【Flex】去除外边框,底背景透明,改变exe的icon
一.去除程序外边框 1.在 xx-app.xml文件里,找到 <!-- <systemChrome></systemChrome> --> 这句话,然后删掉注释 ...
- CSS3学习笔记(2)-CSS盒子模型
p{ font-size: 15px; text-indent: 2em; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid ...
- 微信小程序评分功能
很多做过电商项目的朋友会经常用到评分的功能,我这里正好写了一个例子,发出来分享一下: 我写的是5分满分制的,首先,准备3个图片, ,像这样的,分别代表分数为0,0.5,1 时的状态, 效果图:(以3. ...
- Git与Github的使用学习
摘要 本文讲解下Git的使用,包括使用Git上传项目工程到Github,文末有彩蛋哦. 1.安装Git 使用apt-get安 sudo apt-get update sudo apt-get inst ...
- Nature:新发现挑战神经元作用传统理论 [转自科学网]
美德科学家独立进行的两项最新研究表明,单个神经元的激发就足以影响学习和行为.这一结论挑战了人们长期以来的认识,即数千个神经元的有序排列才能够产生一个行为反应.这两篇论文12月19日在线发表于<自 ...
- CSharpGL(41)改进获取字形贴图的方法
CSharpGL(41)改进获取字形贴图的方法 在(http://www.cnblogs.com/bitzhuwei/p/CSharpGL-28-simplest-way-to-creating-fo ...
- PHP常用的三种设计模式
本文为大家介绍常用的三种php设计模式:单例模式.工厂模式.观察者模式,有需要的朋友可以参考下. 一.首先来看,单例模式 所谓单例模式,就是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实 ...
- Broker节点
在druid集群环境中 broker节点的作用是查询.它知道metadata 通过zookeeper发送到了集群中的哪个节点,从而能够准确的查询到.broker也把各个节点的结果汇聚到一个节点中.On ...