文档章节

自动化部署(一),准备工作

408582708
 408582708
发布于 2016/10/28 17:32
字数 917
阅读 7
收藏 0
点赞 0
评论 0

centos下安装JDK8的方法

今天在自己的centos机子上安装jdk,发现以前的教程都比较旧了,很多东西都过时了。今天把自己安装的感受写一下。

判断是否安装

首先,我们得判断机子上是不是安装了jdk,好多人推荐使用java -version命令。我的计算机上使用java -version命令,内容如下:

java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.2.el6_4-i386 u45-b15)
OpenJDK Server VM (build 24.45-b08, mixed mode)

这看起来好像我的机子中已经安装了jdk,但是当我使用javac时,会提示:

-bash: javac: command not found

这说明第一个java命令,不是安装的jdk中的java命令,而是在$PATH的所有路径下有一个可以执行的java文件,说明jdk还是没有正确安装。这个要特别注意。

安装jdk

  1. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html中下载jdk的安装文件。由于我的Linux是64位的,因此我下载jdk-8u111-linux-x64.tar.gz文件,如下图所示:
  2. 新建/usr/java文件夹,将jdk-8u111-linux-x64.tar.gz放到该文件夹中,并将工作目录切换到/usr/java目录下。
  3. 执行命令tar -zxvf jdk-8u111-linux-x64.tar.gz 进行解压,解压后发现/usr/java多了一个jdk1.8.0_111文件夹。
  4. 通过以上步骤,jdk就已经全部安装完成了。下面,就是环境变量的配置。

配置环境变量

  1. 使用vim /etc/profile编辑profile文件
  2. 在/etc/profile底部加入如下内容

    JAVA_HOME=/usr/java/jdk1.8.0_111
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
    export PATH JAVA_HOME CLASSPATH

  3. 以上,环境变量配置完成。需要注意的是,PATH在配置的时候,一定要把$JAVA_HOME/bin放在前面,不然使用java命令时,系统会找到以前的java,再不往下找了。这样java这个可执行文件运行的目录其实不在$JAVA_HOME/bin下,而在其它目录下,会造成很大的问题。
  4. 还要注意,以前其它教程写的CLASSPATH=$JAVA_HOME/lib.tools.jar,不知道以前的版本是怎么样的,现在的版本是没有这样的jar包的
  5. 最后使用source /etc/profile让profile文件立即生效。
[liming@108-216-199 java]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/liming/.local/bin:/home/liming/bin
[liming@108-216-199 java]$ sudo echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/liming/.local/bin:/home/liming/bin
[liming@108-216-199 java]$ sudo source /etc/profile
sudo:source:找不到命令
[liming@108-216-199 java]$ source /etc/profile
[liming@108-216-199 java]$ echo $PATH
/usr/java/jdk1.8.0_111/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/liming/.local/bin:/home/liming/bin

命令测试

  1. 使用javac命令,不会出现command not found错误
  2. 使用java -version,出现版本为java version "1.8.0_111"
  3. echo $JAVA_HOME, echo $CLASSPATH, echo $PATH,看看自己的配置是否都正确。

代码测试

在自己的工作目录下创建一个新文件Hello.java,写入如下内容:

public class Hello{
     public static void main(String[] args){
         System.out.println("Hello World");
     }
 }

执行命令如下,如果得到以下结果,说明jdk安装完成。

[gqq@pku ~/JavaProjects/test]$ javac Hello.java
[gqq@pku ~/JavaProjects/test]$ java -cp . Hello
Hello World

当然,我们安装的jdk8,应该测试下jdk8的特性。可以使用jdk8特有的stream来测试,代码如下:

import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;

public class TestLambda1 {
    public static void main(String[] args) {
    
        // Aggregate Operations
        List<String> myList = Arrays.asList("zhangsan", "lisi", "wangwu",
                "liuliu");
        myList.stream().filter(x -> x.contains("a")).map(x -> x.toUpperCase())
                .forEach(x -> System.out.println(x));
    }
}

使用以下命令运行,得到结果,说明安装没有问题。

[gqq@pku ~/JavaProjects/test]$ javac TestLambda.java 
[gqq@pku ~/JavaProjects/test]$ java -cp . TestLambda
ZHANGSAN
WANGWU

本文转载自:

共有 人打赏支持
408582708
粉丝 0
博文 30
码字总数 65055
作品 0
朝阳
程序员
Ansible学习:(一)Ansible基础

一.Ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等...

郭晓辉gg ⋅ 2017/04/09 ⋅ 0

[1] DevOps 自动化运维工具Chef----入门

最近在学习Chef, Chef 就是现在比较热门的自动化运维工具之一,其他的工具还有Ansible, Puppet, SaltStack. 为什么选择Chef,是因为Chef对Window的支持非常的好。 Chef的官方网站,https:/...

chancein007 ⋅ 2016/09/16 ⋅ 0

数据中心网络运维必杀技满满套路得人心

  【IT168 资讯】“重复劳动,效率低下,事情繁杂,出事背锅”。这是一直以来数据中心网络运维人员的切身感受。数据中心运维本来就是一个复杂的事情,用一个公式可以感受其中的难度:“数据...

it168网站 ⋅ 2016/09/01 ⋅ 0

数据中心网络运维必杀技满满“套路”得人心

“重复劳动,效率低下,事情繁杂,出事背锅”。这是一直以来数据中心网络运维人员的切身感受。数据中心运维本来就是一个复杂的事情,用一个公式可以感受其中的难度:“数据中心运维综合复杂度...

玄学酱 ⋅ 05/17 ⋅ 0

从携程事件给我们警示

从携程事件给我们警示 你准备好了吗? 如果携程事件发生在你身上,这个问题怎么处理?有无应对方案?怎样快速找出攻击的方式,方法? 有句话说的好,常在河边走,哪有不湿鞋。 程序是一波人一...

neo-chen ⋅ 2015/05/28 ⋅ 16

【转载】腾讯运维10年,我斩获了这5把“杀手锏”

十年不苟且的运维之路 加入腾讯已十年的运维老兵,回顾这十年: 2004年:加入腾讯,做贺卡开发; 2005年:加入QQ空间开发团队,负责留言版模块; 2006年~至今:公司组织架构调整,接触运维工...

English0523 ⋅ 01/11 ⋅ 0

CentOS6.4 kickstart 部署

概述 Kickstart 是RedHat 公司开发的自动安装部署工具,kickstart批量部署工具利用主板PXE模式加载DHCP服务器上的pxelinux.0文件来加载引导内核启动安装程序,安装ks.cfg预定义的动作完成自动...

行者深蓝 ⋅ 2013/10/24 ⋅ 0

《持续交付-发布可靠软件的系统方法》读书笔记-持续集成

《持续交付-发布可靠软件的系统方法》全书51.2万字,15章,384页。本次阅读第三章持续集成,大概42页。 持续交付 持续集成最早出现在Kent Beck写的《解析极限编程》一书中,主要思想:既然经...

转型实践者 ⋅ 2017/11/25 ⋅ 0

从自动化测试到持续部署,你需要了解这些

在互联网的产品开发时代,产品迭代越来越频繁,“从功能开发完成直到成功部署”这一阶段被称为软件开发“最后一公里”。很多开发团队也越来越认识到,自动化测试和持续部署可帮助开发团队提高...

风起云飞fir_im ⋅ 2016/06/08 ⋅ 0

CMDBuild-2.4.3 for CentOS 7安装配置

由于公司不断扩大,服务器数量日益增多,服务器管理由原来的Excel表格管理问题不断增加。近日公司Boss想找一款开源的CMDB管理系统,对比了腾讯的蓝鲸和CMDBuild,决定使用CMDBuild。下面我们...

王洪斌 ⋅ 2017/07/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部