精华内容
下载资源
问答
  • 文章主要有以下几个步骤:云服务器环境搭建,防火墙端口开放,java项目打包,如何上传到服务器,如何运行和查看日志。我是一个java开发者,我的文章都是工作中用到的解决方案,很多都是直接粘贴的...

    0、业务场景

    当我们项目写好了需要放在服务器上进行测试或者发布的时候,我们需要用到云服务器,把项目部署在云服务器上进行测试。这篇文章记录的是我如何把自己的项目部署在Centos7.4服务器上,包括搭建服务器环境。

    文章主要有以下几个步骤:云服务器环境搭建,防火墙端口开放,java项目打包,如何上传到服务器,如何运行和查看日志。

    我是一个java开发者,我的文章都是工作中用到的解决方案,很多都是直接粘贴的源码,如果觉得有用可以收藏一下,希望有一天能用的上,我就很开心了。如果喜欢这里文章可以关注我,我会继续发的,谢谢你。

    1、云服务器环境搭建

    我们买好的服务器一般都是linux系统的,如果是公司的云服务器一般也是linux,作为服务器很少有windows系统,因为linux具有更高的安全性,更稳定!此处我是基于centos7.4安装java环境。以及分享了如何一键安装常规网站需要的环境。

    1.1 Java环境安装

    jdk的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    1.2卸载JDK

    centos自带的有openjdk,如果不想使用可以卸载掉,命令如下:

    yum -y remove java-1.7.0-openjdk*

    yum -y remove java-1.8.0-openjdk*

    1.3安装jdk

    方法一:利用yum源来安装jdk(此方法不需要配置环境变量)

    查看yum库中的java安装包 :

    yum -y list java*

    安装需要的jdk版本的所有java程序:

    yum -y install java-1.8.0-openjdk*

    (安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64)

    方法二:用rpm安装jdk,使用Xftp将下载好的jdk-8u152-linux-x64.rpm上传到Centos上去

    使用rpm命令安装:

    rpm -ivh jdk-8u152-linux-x64.rpm

    jdk下载地址在上面链接里。注意下载linux64的。

    31d1c7a3a43d54f75a8fdc33555de51d.png

    到这里java环境就安装好了,不涉及到数据库的安装,如果想使用php和nginx等软件,推荐去百度查一下wdcp,宝塔等,都很不错。

    2、防火墙端口开放

    防火墙端口开放,关闭,查看等,我吧我常用的命令都列出来了,大家直接复制粘贴使用。需要注意的是:服务器上端口开放了,但是在阿里云,或者百度云,腾讯云那边,他们依旧是拦截的,相当于他们那边还有一道防火墙。我们需要在阿里云后台添加对应的安全组规则,相当于放开第二道防火墙。只有2到防火墙都开了,才可以的。

    1、firewalld的基本使用

    启动: systemctl start firewalld

    关闭: systemctl stop firewalld

    查看状态: systemctl status firewalld

    开机禁用 : systemctl disable firewalld

    开机启用 : systemctl enable firewalld

    2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

    启动一个服务:systemctl start firewalld.service

    关闭一个服务:systemctl stop firewalld.service

    重启一个服务:systemctl restart firewalld.service

    显示一个服务的状态:systemctl status firewalld.service

    在开机时启用一个服务:systemctl enable firewalld.service

    在开机时禁用一个服务:systemctl disable firewalld.service

    查看服务是否开机启动:systemctl is-enabled firewalld.service

    查看已启动的服务列表:systemctl list-unit-files|grep enabled

    查看启动失败的服务列表:systemctl --failed

    3.配置firewalld-cmd

    查看版本: firewall-cmd --version

    查看帮助: firewall-cmd --help

    显示状态: firewall-cmd --state

    查看所有打开的端口: firewall-cmd --zone=public --list-ports

    更新防火墙规则: firewall-cmd --reload

    查看区域信息: firewall-cmd --get-active-zones

    查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

    拒绝所有包:firewall-cmd --panic-on

    取消拒绝状态: firewall-cmd --panic-off

    查看是否拒绝: firewall-cmd --query-panic

    那怎么开启一个端口呢

    添加

    firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

    重新载入

    firewall-cmd --reload

    查看

    firewall-cmd --zone= public --query-port=80/tcp

    删除

    firewall-cmd --zone= public --remove-port=80/tcp --permanent

    3、java项目打包和上传到服务器

    如何把我们的项目打包呢?如果不是springboot项目,还需要在服务器上下载安装tomcat的,把你的web项目打包成war包,上传到tomcat的webapps里面,然后启动tomcat.这种项目我已经很久没有写过了,此处不再赘述。我主要用的都是SpringBoot项目,以下演示如何把springboot项目打包,上传到服务器。

    打包命令:

    mvn clean package

    连接服务器我使用的软件是Xshell5和xftp5,可以在Xshell5界面直接启动xftp5来上传文件。如下图,点击一下直接启动xftp就可以上传文件了。

    fd4ccc68e7ccd3845bca5a83fad2f23e.png

    链接成功如下图:左侧的本机的文件,右侧是服务器的,可以直接把本地的拖到右侧,即可上传了。

    3d51dad3eca510b78d303c04a8ba7b1c.png

    4、如何把项目跑起来和查看日志

    因为我们springboot项目打包出来是jar包,直接可以使用java -jar xxx.jar这个命令来运行的,没有问题。 但是当我们ssh窗口关闭了,项目也就关闭了,因为只在我们这个窗口运行,并非是在系统后台运行。我们需要吧项目运行在系统后台。命令如下:

    nohup >log.log java -jar xxx.jar &

    其中log.log是我强制把项目的日志信息输出到log.log这个文件夹的,如果你的项目也配置了日志输出,同样有效。

    这样的话,及时我们这个ssh窗口关闭,项目依旧会在系统运行,此处未配置到开启自动运行。

    查看日志,命令如下:

    cat log.log

    当然,你也可以用xftp把这个日志文件下载到本地查看。都可以的。

    fe13c0c0c53cf3af4a0ae10478f97be7.png

    好了,到这里就结束了,这都是我自己实际工作中用到了,切实可用,如果你喜欢这样的干货文章,关注我吧,我会继续发的。

    展开全文
  • 关于线程的一点心得//首先导入...//首先需要创建一个线程并且一直运行,然后创建一个计时器任务来触发事件(比如创建一个stop.txt文件,如果发现文件存在则停止运行程序)。public class Stop{public static void main...

    关于线程的一点心得

    //首先导入需要的包

    improt java.util.Timer;

    import java.io.File;

    import java.util.TimerTask;

    //首先需要创建一个线程并且一直运行,然后创建一个计时器任务来触发事件(比如创建一个stop.txt文件,如果发现文件存在则停止运行程序)。

    public class Stop{

    public static void main(String args[]){

    //创建线程,运行。

    Count cou=new Count(true);

    Thread th=new Thread(cou);

    th.start();

    //创建一个计时器任务

    Timer time=new Timer();

    //使用匿名内部类启动计时任务,如果发现文件stop.txt则停止上面线程。

    time.schedule(new TimerTask(){

    public void run(){

    File file=new File("stop.txt");

    if(file.exists()){

    Count.setFlag(false);

    System.exit(-1);

    }

    },100,1000);

    }

    }

    //通过Runnable接口来创建线程,创建一个boolean flag变量来标记运行状态。

    class Conunt implements Runnable{

    private boolean flag;

    public Count(boolean flag){

    this.falg=flag;

    }

    public void setFlag(boolean flag){

    this.falg=flag;

    }

    //重写Runnable接口的抽象方法,让程序每隔一秒钟输出一个线程状态数字。

    public void run(){

    for(int i=0;flag;i++){

    try{

    Thread.sleep(1000);

    System.out.println(Thread.cuurentThread().getName()+i);

    }catch{

    System.out.println("异常");

    }

    }

    }

    个人经验,不足之处望指出。

    展开全文
  • 问这个问题不知道大家会不会觉得提问者是个傻子(还请各位大佬轻喷 = =)...但是这个问题确实是困扰着我!问题的起因是这样的,先看下面这段代码...程序结束,这段代码在运行完成之后就自动停止了,也就是说我可以...

    问这个问题不知道大家会不会觉得提问者是个傻子(还请各位大佬轻喷 = =)...但是这个问题确实是困扰着我!

    问题的起因是这样的,先看下面这段代码

    public static void main(String[] args) {

    System.out.println(1);

    }

    运行这段代码的时候,程序开始运行--->控制台输出1--->程序结束,这段代码在运行完成之后就自动停止了,也就是说我可以理解为程序有开始、有结束。那么如何让程序不自动结束呢?(Java)我了解到的方法有 while true 死循环,或者 wait()

    public static void main(String[] args) {

    System.out.println(1);

    while (true) {}

    }

    public static void main(String[] args) {

    Object object = new Object();

    System.out.println(1);

    synchronized (object) {

    try {

    object.wait();

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    }

    }

    这两种方法都不会主动停止,但是感觉是不是有点太丑了?比如tomcat或者nginx等web容器不太可能写这种比较“无脑”的代码,不可能监听端口的时候是一遍一遍的“无脑”循环监听吧?,所以我就很疑惑,它们是怎么一直在后台运行的?当然,他们的具体实现肯定很复杂,我并不是想知道他们的具体实现(因为太菜估计也实现不了(ーー゛)),而是想了解一下这种想法,在这里请教一下各位大佬,这是怎么个思想或者我要从哪个方面去入手才可能了解这个问题?

    展开全文
  • 有时,我会运行一个偶然包含无限循环之类的程序。 Eclipse让我继续编辑程序,但速度非常慢。 我该如何阻止它? (我是否想重新启动JVM?)重新启动eclipse本身总是可行的,但这会中断我的工作流程。这是一个很老的问题...

    有时,我会运行一个偶然包含无限循环之类的程序。 Eclipse让我继续编辑程序,但速度非常慢。 我该如何阻止它? (我是否想重新启动JVM?)重新启动eclipse本身总是可行的,但这会中断我的工作流程。

    这是一个很老的问题..但是...这里似乎缺少一种非常基本的方法:不要忘记,可以在需要时使用代码中的System.exit终止程序(不需要devops脚本) )。 在这里阅读更多关于它的信息:stackoverflow.com/questions/3715967/

    打开"控制台"视图,找到正在运行的应用程序的控制台,然后单击"红色大按钮"。

    或者,如果您打开"调试"透视图,则您会在左上方看到(默认情况下)所有正在运行的应用程序。您可以选择一个引起您悲伤的按钮,然后再次按"大红色"按钮。

    937df0c52bb5d985ae19febc40494e9e.png

    调试视图通常更方便,因为它显示了所有正在运行的进程。 控制台仅显示其中之一。

    是的按钮

    知道如何优雅地关闭JVM,以便执行各种关闭挂钩吗?

    @SCdF,为什么Android没有红色按钮?

    @Pacerier我的答案是五岁的伙伴,我不知道:-)

    对于较新版本的Eclipse:

    打开"调试"透视图("窗口">"打开透视图">"调试")

    在设备列表中选择过程(右下)

    点击停止按钮("设备"窗格的右上方)

    另外,如果该过程已被Eclipse停止,但您的旋转窗口仍在运行,则可以单击删除启动或删除所有终止的启动xs来杀死该窗口。

    OMFG谢谢,您是唯一一个提到W:H:E:R:E调试观点的人,我(心)你

    我的快速任务栏上有一个.bat文件:

    taskkill /F /IM java.exe

    这非常快,但是在许多情况下可能并不好!

    这有多安全/可靠?

    最简单的方法是在控制台中单击"终止"按钮(红色正方形):

    8c2c30777497ed7dc0b14a1c97d3fbe2.png

    对于Eclipse:

    菜单栏->窗口->显示视图,如果不在列表中,则找到"调试"选项,然后选择其他...

    新窗口将打开,然后使用关键字" debug"进行搜索->从列表中选择debug

    它将添加在控制台选项卡附近。

    使用调试选项卡终止并删除以前的执行。 (右键单击执行过程将显示许多选项,包括终止)

    展开全文
  • Java如何程序一直运行,不停止

    万次阅读 2017-10-30 15:19:50
    如何程序一直运行,很容易实现,只需要一直等待输出即可啦 import java.util.Scanner;/* * @author LiuYanzhao */public class Test { private static final String OPERATION_EXIT = "EXIT...
  • 问这个问题不知道大家会不会觉得提问者是个傻子(还请各位大佬轻喷 = =)...但是这个问题确实是困扰着我!问题的起因是这样的,先看下面这段代码...程序结束,这段代码在运行完成之后就自动停止了,也就是说我可以...
  • 但是,如果您希望使用bat文件并以编程方式执行此操作,我已在下面概述了一种可能的方法:在Java程序中,您可以以编程方式获取PID,然后将其写入文件:public static void writePID(String fileLocation) throws ...
  • 我正在编写一个在LINUX环境中运行Java应用程序,它使用SYNCPOINT在MQ上执行事务.它使用Websphere MQ Java类与MQ服务进行交互.我在我的代码中做的是以下(伪):MQGetMessageOptions gmo = new MQGetMessageOptions();...
  • 关于线程的一点心得 ...//首先需要创建一个线程并且一直运行,然后创建一个计时器任务来触发事件(比如创建一个stop.txt文件,如果发现文件存在则停止运行程序)。 public class Stop{  public ...
  • 目录理解停止Java进程的本质我们知道,Java程序运行需要一个运行时环境,即:JVM,启动Java进程即启动了一个JVM。因此,所谓停止Java进程,本质上就是关闭JVM。那么,哪些情况会导致JVM关闭呢?应该如何正确地停止...
  • 背景:公司抽奖,java写的抽奖程序,待领导喊完开始后,疯狂输出,一段时间后,领导喊 "停......" ,台下一阵哄笑,画面异常尴尬。  过时危险的方法不再今天讨论之内,读者自行补充即可( Thread.stop, ...
  • java程序运行一段时间之后停止

    千次阅读 2017-04-10 00:33:00
    如何java是一段代码运行一段时间之后自动停止运行? 就拿打印随机函数的代码来做例子吧,让程序随机打印1-10的数字,打印十秒钟后停止打印: public class RandomPrint{ public static void randomprint(int ...
  • 本文介绍如何使用Shell脚本来开启和停止jar程序的后台运行,以及如何实现out大文件的切分。另外,补充一些后台运行的小知识。启动脚本:start_upload.sh#!/bin/shnohup java -jar UploadSchedule.jar >> /usr/...
  • 如何java程序执行一段时间后停止 1、概述 在本文中,我们将学习如何在一段时间后结束长时间运行的任务。我们将探讨这个问题的各种解决方案。此外,还将介绍各种方案缺点。 2、使用循环 假设我们在一个循环中处理一...
  • 您肯定已经听说过线程,如何启动线程,如何停止线程,诸如其独立的执行路径之类的定义,处理线程间通信的所有时髦库,但是在调试多线程Java程序时,您会斗争。 至少我可以从我的亲身经历中说出来。...
  • 如何停止java的线程一直是一个开发多线程程序常遇到的一个问题。也有好多人问过我,所以今天在这里总结一下希望可以让更多的人知道在java中如何安全的结束一个正在运行的线程。 在Java的多线程编程中,java.lang....
  • 本文介绍如何使用Shell脚本来开启和停止jar程序的后台运行,以及如何实现out大文件的切分。另外,补充一些后台运行的小知识。启动脚本:start_upload.sh#!/bin/shnohup java -jar UploadSchedule.jar >> /usr/...
  • 我在以下程序中使用处理程序,我想在i = 5时停止它,但处理程序不会停止并连续运行。b1.setOnClickListener(new OnClickListener() {public void onClick(View v) {handler = new Handler();runnable = new Runnable...
  • 我想能够同步实现这几个方法),然后点击ON按钮就开始运行服务器程序了, **重点来了** , **我现在的问题是** ,停止按钮OFF不知道怎么设置方法能够让程序停止当前的线程,我想实现的是点击OFF后,当前的监控方式...
  • 你肯定听说过线程、如何启动线程、如何停止线程、诸如独立执行路径之类的定义,以及处理线程间通信的所有时髦的库,但是在调试多线程Java程序时,你会遇到困难。至少我可以从我的个人经历中这么说。调试在我看来是...
  • 你有没有发现,Java面试中总是爱考一类问题,那就是JVM虚拟机,为什么面试官这么爱考察JVM的问题呢,这是因为,所有的Java程序本质上都是运行在JVM之上的,没有JVM虚拟机,也就没有Java语言的执行环境,只有掌握了...
  • 如何在IDEA中同时运行2个相同的java程序

    千次阅读 多人点赞 2020-05-19 10:14:05
    最近在学习网络编程的时候遇到了一个小小的问题,那就是我需要启动2次java的应用,并且2次启动的都是同一个代码,当我直接在IDEA中运行的时候他会提示我已经运行了,是否停止并重新运行。 如果想同时运行或者说多次...
  • 如何停止java的线程一直是一个开发多线程程序常遇到的一个问题。也有好多人问过我,所以今天在这里总结一下希望可以让更多的人知道在java中如何安全的结束一个正在运行的线程。 在Java的多线程编程中,java.lang....
  • 隔江千里好吧,在我选择使用“Java监控和管理”概述之后的所有可能性之后,这允许您以相对简单的方式从另一个应用程序控制一个应用程序。您可以从脚本中调用控制应用程序,以便在杀死它之前正常地停止受控应用程序。...
  • 你肯定听说过线程、如何启动线程、如何停止线程、诸如独立执行路径之类的定义,以及处理线程间通信的所有时髦的库,但是在调试多线程Java程序时,你会遇到困难。至少我可以从我的个人经历中这么说。调试在我看来是...
  • 如何停止java的线程一直是一个开发多线程程序常遇到的一个问题。也有好多人问过我,所以今天在这里总结一下希望可以让更多的人知道在java中如何安全的结束一个正在运行的线程。 在Java的多线程编程中,java.lang....
  • java-jar xxxxx.jar //当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 java-jar xxxxx.jar& //当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 nohupJava-jar xxxxxx.jar&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 465
精华内容 186
关键字:

java程序如何停止运行

java 订阅