[笔记]我的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,可以先看这个系列的前面两篇(去到文末 ...
随机推荐
- 记一次搭建SS服务器,完整的过程。
前言 这几天为了登录外网查询资料,谷歌经常抽风,国外的博客也打不开,都要整崩溃了.我以前(直到昨天以前)都是使用修改hosts来访问外网的,用的是 老D(https://laod.cn/hosts) ...
- 安装Postgresql
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; fon ...
- 20155232 2016-2017-3 《Java程序设计》第5周学习总结
20155232 2016-2017-3 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 异常处理 1.使用try和catch 将正常的流程放try块中,异常处理放catch ...
- 20155237 2016-2017-2 《Java程序设计》第5周学习总结
20155237 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 语法与继承架构 使用try...catch 与C语言中程序流程和错误处理混在一起不同,Jav ...
- 【Spring】BeanFactory解析bean详解
在该文中来讲讲Spring框架中BeanFactory解析bean的过程,该文之前在小编原文中有发表过,要看原文的可以直接点击原文查看,先来看一个在Spring中一个基本的bean定义与使用. pac ...
- 非负矩阵分解(1):准则函数及KL散度
作者:桂. 时间:2017-04-06 12:29:26 链接:http://www.cnblogs.com/xingshansi/p/6672908.html 声明:欢迎被转载,不过记得注明出处哦 ...
- python 语句:条件、循环、break、continue...
1. 条件语句 执行条件:判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围. [Python程序语言指定任何非0和非空(null)值为true,0 或 ...
- ZEROC ICE 跨平台间程序调用 java版
前言: 本来建博客是为了和大家分享一些前端的开发经验和心得呢,但是阴差阳错,第一篇技术博客确实关于跨平台,跨语言服务端调用的解决方案---ZEROC ICE. 最近一个项目涉及到java.python ...
- Shiro基础学习(一)—权限管理
一.基本概念 1.权限管理 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理 ...
- CSS 画三角形、圆
<div class="square"></div> <style> .square { height: 0px; width: 0px; bo ...