优秀的编程知识分享平台

网站首页 > 技术文章 正文

java程序员需要知道的linux知识(java程序员必备软件)

nanyue 2024-08-04 16:59:21 技术文章 7 ℃

java程序员需要知道的linux知识

在服务器上运行java程序

我们在本地开发时,在idea中可以直接通过idea的配置启动项目,如下图所示,但是在服务器上怎么运行呢?(这里面先只讨论web程序的运行)


先要说下打包方式,web程序有两种打包方式:

一种是打包war包,

打成war包需要再下载一个tomcat,把war包丢到tomcat的webapp目录或者其他目录然后在tomcat 的server.xml中host/context节点下配置目录


然后执行tomat目录下/bin/startup.sh 来启动程序

一种是打包成jar包

这种方式是我比较喜欢的方式,因为不需要再下载什么,直接把jar传到服务器上,通过平常使用java -jar命令就可以启动了,如下图所示:


和war包运行不一样的是,运行startup.sh的时候,程序会后台运行,关了linux连接也没关系,但是用java启动的就不一样了,这个窗口一关,程序就挂了。

后台运行

war包可以直接通过tomat的 start.sh后台运行,我们可以深入startup.sh ,发现执行的是 catalina.sh


打开catalina.sh 找到最行执行java的部分


会发现其实也是简单的命令拼起来的,关键在于最后的这个 &符号。我们在jar包发布的命令同样加就可以了:

java -jar xxx.jar & 这样就可以后台运行啦

查看日志

查看日志常用的有两种,一种是常看实时日志,常用于开发调试的时候。因为程序运行在服务端,黑乎乎的,啥都看不到,这个时候,要是程序哪块功能运行不正常了,就只有上服务器查日志,看看抛了什么异常,还是参数不对。

简单说一说程序中的日志代码

这不是专门讲日志的文章,所以这块简单说一说,首先,声明都用slf4的Logger,这样无论实际实现是用logback , log4j , 等等,都可以做到只改jar包不改代码。

private final static Logger logger =LoggerFactory.getLogger(xxxx.class);

具体配置这篇就不讲了,通过开发的时候开启debug , 线上的时候只打error级别,然后注意两个位置,一个是 tomcat/logs/catalina.out这个是用tomcat运行war包时,控制台的输出,都会进入到这个文件中,是日志最全的地方,另外一个就是程序中自己配置的位置。自己配置上的位置可以把远程调用,sql, 应用错误等等归到不同的文件中,方便查看

常用的查看日志命令

就笔者经验而言其实就一个命令:tail

实时查看,用于能现场复现的问题 tail -f xxxx.out

刚刚才出现问题,往上面翻几行 tail -n1000 xxxx.out

服务器流量很大,日志一直刷个不停,看的眼都花了,那就过滤下

tail -f | grep 'xxx' 这样可以只显示带有'xxx'的日志

停止应用

现在我们开发了新的版本,要把以前运行的那个版本换下来,在窗口操作中,把程序关掉,然后重新打开新程序,在linux中思路也是一样:先找到原程序

ps aux |grep 程序名


红线框框中的内容就是id。

Kill -9 18794 去停掉原程序

按本文上面的运行java程序,启动新的服务

小编分类整理了许多java进阶学习材料和BAT面试题,需要资料的请转发此文章后再私聊小编回复【java】就能领取2019年java进阶学习资料和BAT面试题。

Tags:

最近发表
标签列表