背景
因为涉及大批量访问,因此线上发布了两个包,分别在test/a和test/b文件夹下。那日志文件路径是借助user.dir变量。在a和b文件夹下直接启动没有问题。而在test文件夹下通过 ./*/start.sh脚本,则始终有一个启动不起来,提示日志文件被一个进程占用。
结果分析
user.dir 为当前用户的目录。即 输入启动命令 时的目录。
验证
1.创建dirtest的java项目,并且在Test.java类中打印user.dir的值。
package dirtest;
public class Test {
public static void main(String[] args) {
System.out.println(System.getProperty("user.dir"));
}
}
2.在目录下放dirtest.jar包
E:\test\a
3.打开cmd
4.在E:\test\a目录下执行java -jar dirtest.jar
#在E:\test\a目录下执行java -jar dirtest.jar
java -jar dirtest.jar
5.在E:\test目录下执行java -jar dirtest.jar
#回退到E:\test目录下
cd ..
#运行jar包
java -jar a/dirtest.jar