前言

总是遇到点小问题,然后愉快的百度或者谷歌解决了,下次遇到同样的问题,因解决步骤麻烦或者解决代码太长,不好记,故开了此贴,记录下遇到如何解决问题的小技巧,和java本身的小技巧。

Maven

导入本地依赖

自己写的jar包,或别人的jar包给我们的时候,直接放入本地maven库,总是导入不进来,于是百度说是要安装下。

安装之前需要配置Maven环境变量,这个简单不多说了。到jar包目录下,开启cmd,输入下面命令,需要改的是

<groupId>、<artifactId>、<version>、包的名字,回车安装即可。

1
mvn install:install-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> -Dpackaging=jar -Dfile=包的名字

image-20210809144221140

java

启动java项目

这东西就不用多说了,启动java项目的,简单说下重要的参数

  • -server:当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。
  • -Xms:JVM初始分配的堆内存
  • -Xmx:JVM最大允许分配的堆内存,按需分配
  • >/dev/null:/dev/null是一个文件,这个文件是个垃圾桶,这个意思是把nohup启动的java日志扔进垃圾桶
  • 2>&1:2在linux级别是错误输出,1是标准输出,这个意思是把错误输出到1。结合上面的,就是错误输出,输出到了标准输出,标准输出扔到了垃圾桶。
1
nohup java -jar -server -Xms2000m -Xmx5000m demo.jar >/dev/null 2>&1 &

关闭java项目

正常情况的是jps -l,看到启动的java项目pid,在kill掉,但是我这边要说的是脚本关闭。

整体的逻辑很简单,下面详细介绍

  • 获取PID
    • 通过jps -l,找到启动的java应用
    • 管道过滤我们要找的java应用
    • awk文本处理,按空格分隔,取第一个就是jar的PID
  • 判断是否为空,为空输出no stop application
  • 不为空,kill掉
1
2
3
4
5
6
7
8
9
#!/bin/bash
PID=$(jps -l|grep demo.jar|awk '{print $1}')
if [ -z "$PID" ];then
echo "no stop application"
else
echo "PID=$PID,正在关闭应用..............."
kill -9 $PID
echo "关闭应用成功!!!"
fi