有一个种方法就是在需要执行的jar文件中的MAINFEST文件设置CLASSPATH,这样的方法很容易写错名字也不适合随时添加删除lib文件夹中的.jar文件,因为每次添加删除就需要修改MAINFEST文件的CLASSPATH
查到不少如何将一个目录的jar包设置为classpath,但是如果设置完以后执行java -jar命令去执行一个jar包,前面的设置会被默认屏蔽了。
解决的方法就是把要执行的jar包也设置到classpath中去,然后执行普通的java命令运行jar包中的class文件
例如,windows中制作一个run.bat文件,内容为:
SetLocal EnableDelayedExpansion
set CLASSPATH=.
FOR %%i IN ("lib/*.jar") DO SET CLASSPATH=!CLASSPATH!;%%i //这儿一定要是!不是%
set CLASSPATH=%CLASSPATH%;JOSP.jar //这是我要执行的jar文件
echo %CLASSPATH%
java -cp %CLASSPATH% jospserver.ospserver 192.168.100.206 7 chenyi //jospserver为package名,ospserver 为class名,后面是我程序需要的运行参数
在linux中就制作一个shell命令,run.sh,内容为:
#!/bin/sh
#获取当前目录
PWD=`pwd`
CLASSPATH=$PWD/JOSP.jar:"$CLASSPATH"
for i in lib/*.jar;
do CLASSPATH=$PWD/$i:"$CLASSPATH";
done
export CLASSPATH=.:$CLASSPATH
java -cp $CLASSPATH jospserver.ospserver 192.168.100.206 7 chenyi
这样就省去了设置JOSP.jar文件中MAINFEST里面的classpath参数,而且可以根据需要添加和删除lib文件夹中的.jar文件而不需要修改MAINFEST