jar包最简单的运行方式莫过于java -jar jar_file_path这种方式,但大部分时候,我们的jar包可能都不支持单独运行,可以采用以下方法
1、首先创建以下文件夹或者目录
project
--bin
--config
--lib
--log
2、创建好上述路径后,如果是Windows平台,在bin文件夹下放以下文件base-run.bat和project-run.bat(运行时直接双击该文件)
其中base-run.bat内容如以下:
SET _CLASSPATHCOMPONENT=%1
:argCheck
IF %2a==a GOTO gotAllArgs
SHIFT
SET _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1
GOTO argCheck
:gotAllArgs
SET CLASSPATH=%_CLASSPATHCOMPONENT%;%CLASSPATH%
project-run.bat文件内容如以下:
echo off
set TERMBASE= ..
set properties=D:\study\project\properties
set JAVA_HOME=D:\java\jdk1.8.1
set CLASSPATH=
FOR %%i IN (%TERMBASE%\lib\*.jar) DO CALL base-run.bat %%i
set CLASSPATH=%CLASSPATH%;%properties%
echo %CLASSPATH%
%JAVA_HOME%\bin\java -cp "%CLASSPATH%" com.main.DemoApplication
pause
如果是Linux平台,则放置propoject-run.sh文件(注意需要给该文件加可执行权限,执行chmod +x *.sh即可,运行时直接在当前路径下执行./properject-run.sh即可),该文件内容如以下
#!/bin/bash
export PROJECT_BASE=/opt/project
export JAVA_HOME=/usr/java/jdk1.8.1
LIB_DIR=$PROJECT_BASE/lib
cnt=`ps -ef | grep "com.main.DemoApplication" | grep -v grep | wc -l`
if [ $cnt -gt 0 ]; then
echo "已经运行了一个相同实例,请停止其它实例再试。"
exit 1
fi
CP3=$(JARS=("$LIB_DIR"/*.jar); IFS=:; echo "${JARS[*]}")
CFG=$PROJECT_BASE/config
$JAVA_HOME/bin/java -cp "$CFG:$CP3" com.main.DemoApplication
3、config目录下可以存放项目配置文件,比如application.properties等
4、在lib目录下存放依赖的jar包和项目代码打包成的jar
5、log目录可以作为日志路径