普通java项目目录结构_JAVA项目的目录结构分析

一般来说,JAVA项目最终上线都是以JAR或者WAR的形式发布

WAR的话就是WEB工程,JAR的话就是普通JAVA工程,可以直接启动,无需任何容器的

一般比较的固定的目录结构:

项目名称demo

demo/bin这里一般是启动和停止脚本  start.sh  stop.sh

demo/conf  系统配置文件

demo/base war工程的话,将war包放此

demo/***

demo/lib  war工程的话,不需要,因为war工程通过mvn构建,引用的jar包都会打在war包里,如果是jar工程的话,需要此目录存放你的jar包(如果也通过mvn打在一起也可以,多的话)

demo/logs  这是必须的,存放log的位置

如何配置log??

 
 

这样的话,当你JAVA类里get以上的logger name就可以将log写到demo-log文件里了

重点分析下demo/bin目录下脚本编写:

env.sh

export JAVA_HOME=/usr/*/jdk

export NGINX_HOME=/usr/*/nginx

export JETTY_HOME=/usr/*/jetty

export JETTY_PORT=******

export APP_INSTALL_HOME=****

export APP_LOG_DIR_PATH=****

export LANG=zh_CN.UTF-8

以上是一个示例,包括了JAVA,NGINX,JETTY,项目目录,log目录等等一些变量的配置

start.sh

source ./env.sh

JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Dcom.sun.management.jmxremote.port=7788 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "

JAVA_OPTS=" -server -Xmx512m -Xms512m -Xss256K -XX:PermSize=128M -XX:MaxPermSize=128M -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedOops -XX:CMSInitiatingOccupancyFraction=70 -XX:+HeapDumpOnOutOfMemoryError -XX:SurvivorRatio=8 "

JAVA_OPTS=${JAVA_OPTS}" *** -Dlog_path="${LOG_PATH}

$SYS_ECHO "starting......,please wait ..."

${JAVA_HOME}/bin/java ${JAVA_DEBUG_OPTS} ${JAVA_OPTS} -jar ${APP_PATH}/*.jar

******

这里的JAVA——OPTS是用来配置一些java启动参数,以及项目的系统参数-D 参数通过System.getProperty来获取

stop.sh

pids=`${JAVA_HOME}/bin/jps | grep **|awk '{print $1}'`

for pid in $pids

do

kill -9 $pid

done

}循环将启动的该**进程全部杀死,即停止

如果是war包工程的话

ps -ef | grep 容器 | awk '{pring $1}'

有tomcat容器,jetty容器等等

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值