一、CentOS 7 yum 安装与配置 JDK

参考:https://blog.csdn.net/github_38336924/article/details/82221258

1、检查是否已安装JDK及卸载

yum list installed | grep [java][jdk]


执行命令出现如上图所示,需要卸载,反之即不用。

卸载JAVA环境:

yum -y remove java-1.6.0-openjdk*  //表时卸载所有openjdk相关文件输入
yum -y remove tzdata-java.noarch   //卸载tzdata-java

2、安装JDK

查看JDK软件包列表

yum search java | grep -i --color jdk

选择版本安装

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# 或者如下命令,安装jdk1.8.0的所有文件
yum install -y java-1.8.0-openjdk*

查看JDK是否安装成功

java -version

3、配置环境变量

  • JDK默认安装路径/usr/lib/jvm
  • 在/etc/profile文件添加如下命令
# set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME  CLASSPATH  PATH

保存关闭profile文件,执行如下命令生效

source  /etc/profile

使用如下命令,查看JDK变量

echo $JAVA_HOME
echo $PATH
echo $CLASSPATH

部署Java程序

爬虫示例:(This program can increase csdn blog Page View)

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/** 如果设置了自定义域名,将博客域名前缀填写入19行的变量userId中,点击运行* 本程序访问该博主名下所有博客链接*/
public class UrlCrawer {static int maxPages = 20; // 填写你的博客查找页数static String userId = "hanquan";// 这里填入主页名称:例如主页为 https://hanquan.blog.csdn.net/ 则填入 hanquan 即可static final String homeUrl = "https://" + userId + ".blog.csdn.net/article/list/";static Set<String> urlSet = new HashSet<>();public static void getUrls() throws IOException, InterruptedException {InputStream is;String pageStr;StringBuilder curUrl = null;for (int i = 1; i < maxPages; i++) {Thread.sleep(300);System.out.println("正在查找第 " + i + " 页中的博客地址");curUrl = new StringBuilder(homeUrl);curUrl.append(i);System.out.println(curUrl);is = doGet(curUrl.toString());pageStr = inputStreamToString(is, "UTF-8");// 一整页的html源码List<String> list = getMatherSubstrs(pageStr, "(?<=href=\")https://hanquan.blog.csdn.net/article/details/[0-9]{8,9}(?=\")");urlSet.addAll(list);System.out.println("加入 " + list.size() + " 个url");}}public static void main(String urlstr[]) throws IOException, InterruptedException {// ----------------------------------------------遍历每一页 获取文章链接----------------------------------------------getUrls();// ---------------------------------------------------打印每个链接---------------------------------------------------System.out.println("打印每个链接");for (String s : urlSet) {System.out.println(s);}System.out.println("打印每个链接完毕");// ---------------------------------------------------多线程访问每个链接---------------------------------------------------ExecutorService executor = Executors.newCachedThreadPool();int threadCount = 5; // 并发线程数量for (int i = 0; i < threadCount; i++) {executor.execute(new MyThread(urlSet));}executor.shutdown();}public static InputStream doGet(String urlstr) throws IOException {URL url = new URL(urlstr);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36");InputStream inputStream = conn.getInputStream();return inputStream;}public static String inputStreamToString(InputStream is, String charset) throws IOException {byte[] bytes = new byte[1024];int byteLength = 0;StringBuffer sb = new StringBuffer();while ((byteLength = is.read(bytes)) != -1) {sb.append(new String(bytes, 0, byteLength, charset));}return sb.toString();}// 正则匹配public static List<String> getMatherSubstrs(String str, String regex) {List<String> list = new ArrayList<String>();Pattern p = Pattern.compile(regex);Matcher m = p.matcher(str);while (m.find()) {list.add(m.group());}return list;}
}class MyThread implements Runnable {public List<String> urlList;public MyThread(Set<String> urls) {List list = new ArrayList(urls);Collections.shuffle(list);this.urlList = list;}@Overridepublic void run() {int i = 0;while(true){for (String s : urlList) {try {Thread.sleep((int) (Math.random() * 3000));doGet(s);System.out.println(Thread.currentThread().getName() + "成功访问第" + (++i) + "个链接,共" + urlList.size() + "个:" + s);} catch (Exception e) {e.printStackTrace();}}}}public static InputStream doGet(String urlstr) throws IOException {URL url = new URL(urlstr);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36");InputStream inputStream = conn.getInputStream();return inputStream;}
}

编译并运行

javac UrlCrawer.java
java UrlCrawer

利用 screen 使其保持在前台运行

如果想保持其运行,最简单的方式,就是不关掉窗口。screen 就能起到这个效果。

使用场景:当你使用SSH登录VPS下载大的文件,比如下载10G的文件,你总不能坐在电脑旁或者开机让它下载吧。当你编译源文件的时候,网络突然断开了,那是很糟的一件事情,因为有可能你重新编译的时候会失败,于是你只有重装系统的选择了。但Linux的screen命令能避免这些灾难。

screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。screen能在一个终端程序执行多个任务,离线执行任务等。

安装 screen
yum install screen

键入以下命令启动 screen,之后会生成一个会话窗口。

screen

现在你处于新的会话窗口中,你可以执行任何命令。

管理会话的语法是:ctrl a 指令

比如

  • ctrl a c 表示创建新的会话窗口
  • ctrl a d 表示退出但不关闭当前窗口
  • 更多的命令可以键入 ctrl a ? 查看
  • screen -ls 表示查看所有会话列表

这样就可以在新窗口中跑程序,并且在ctrl a d退出窗口后,保持其仍然在前台运行了,下次再进来的时候,仍然可以看到控制台持续输出。

爬虫实战:CentOS安装JDK,部署Java程序,利用screen使其保持在前台运行相关推荐

  1. 【Java学习】JDK安装及第一个java程序

    一直听说Java是C++的升级和优化,却一直没用过,今天来简单学习一下. JDK安装及第一个java程序 一.JDK安装 二.第一个java程序 三.系统环境变量配置 一.JDK安装 JDK(Java ...

  2. VMware安装centos7,centos安装jdk,tomcat,mysql5.7,nginx,redis,ftp,日志分割

    1 centos7安装docker docker-compose docker安装软件 VMware安装centos7 centos安装jdk centos安装zookeeper centos安装to ...

  3. Linux/Win/MacOS系统 安装JDK(Java)教程,JDK下载

    JDK下载安装与环境变量配置图文详细教程,Window.Linux和MacOS(M1)系统安装jdk教程. 我的世界(Minecraft)开服教程:https://blog.zeruns.tech/t ...

  4. CentOS安装jdk的三种方法

    2019独角兽企业重金招聘Python工程师标准>>> CentOS安装jdk的三种方法 环境 Linux版本:CentOS 6.5.Ubuntu 12.04.5 JDK版本:JDK ...

  5. Java程序利用POJ读写Excel的.xls或.xlsx文件所需的3个jar包

    Java程序利用POJ读写Excel文件时,不能只用poi的jar包,因为它还依赖于xmlbeans的jar包,xmlbeans又以来与common-collections的jar包,因此,正常使用P ...

  6. java打印直角三角形解析_编写java程序,打印3个5行直角三角形图案 运行效果如下: 使用 方法 实现 代码截图,必须含有2位学号+姓名_学小易找答案...

    [判断题] 项目评估的程序包括准备和执行. [单选题]下列表述正确的是______________ [单选题]Which fallacy is at work in the following? & ...

  7. Centos安装JDK(java环境)

    王小私下问我 centos 中 jdk 怎么安装呀,所以再次整理了这篇基础环境搭建的文章. 1.创建java目录2.下载上传jdk3.解压jdk4.配置环境变量 1.创建java目录 首先我们创建ja ...

  8. 记录拷贝:centos安装jdk

    来源:www.cnblogs.com/kevingrace/- 查看CentOS自带JDK是否已安装 1 [root@test ~]# yum list installed |grep java 若有 ...

  9. mysql error104528000_腾讯云服务器CentOS安装JDK+Tomcat+MySQL详细步骤(以及遇到的各种坑)...

    前言 趁着学生期间,买了一个云服务器拿来自己练练手,刚配置一个环境就让自己各种无语,把自己配置的步骤和遇到的问题整理一下. 安装过程 将下载好的安装包上传到云服务器/usr/local文件夹 scp ...

最新文章

  1. CoreOS 和 Kubernetes 1.5 自主运行 Kubernetes、Container Linux
  2. 【错误记录】Android Studio 的 Flutter 代码界面没有 Logcat 面板 ( 2021年08月28日最新解决方案 )
  3. java自动依照日期建表,脚本根据一个表中的日期字段填充每月汇总表
  4. Python 调试 PDB
  5. Linux 内核编译 LOCALVERSION 配置(分析内核版本号自动添加的“+“号)
  6. WPS Office 2016 专业增强精简版 附终身授权正版序列号
  7. 下载 Flash Player 强制跳转至 flash.cn,无法下载国际版 Flash 解决方法
  8. python爬虫框架论文开题报告范文_论文开题报告框架
  9. 如何自制圆环_PPT中如何制作环形图高级教程
  10. dva使用及项目搭建
  11. 数字图像处理(1)图像取样,4倍,16倍减采样,matlab实现
  12. python3 练习题100例 (十六)鸡尾酒疗法
  13. 441_MPLAB X中导入MPLAB工程
  14. css清除浮动带来的负面影响
  15. 任务6 -传统机器学习--SVM
  16. 原生革命--跨平台开发技术解析
  17. 笔记本电脑常用的快捷键
  18. Zigbee协议栈组播通信
  19. 2016年春运火车票预售期购票日历 (zz)
  20. java编程加载窗口,制作动画(屏保泡泡)

热门文章

  1. HDU - 5015 233 Matrix(矩阵快速幂)
  2. 如何在input输入框中加一个搜索的小图片_前端开发困难重重,如何把握机会学习?...
  3. android开发入门与实践_Electron从入门到实践,前端开发者开发桌面App的最佳选择...
  4. android 单位转换工具,Android单位转换----常用单位转换工具类
  5. 动态树模板(HDU4010题)
  6. C++虚继承(五) --- 虚拟继承的概念
  7. Mysql数据库中的as和distinct的使用
  8. 微服务下分布式事务模式的详细对比
  9. 这谁写的技术文档?我想锤死他...
  10. 万亿条数据查询如何做到毫秒级响应?