程序执行与配置信息的路径无关性

程序执行与配置信息的路径无关性

在项目中碰到一个这个的问题,在bin目录下能成功启动程序,在根目录下却不行,程序执行与配置信息的路径无关性非常重要,无论是程序或者配置中都应该设置为绝对路径,以免埋坑踩坑。

目录结构示例:
模块目录:helloworld/
执行:helloworld/bin/helloworld.bin
配置:helloworld/conf/helloworld.conf
日志:helloworld/log/helloworld.log
数据:helloworld/data/helloworld.data

不妨启动脚本为start.sh,内容为:

./helloworld.bin --conf=../conf/helloworld.conf

这将出现,启动脚本放在bin目录下,模块才能正常启动,放在其他路径,则不能启动成功,应改为:

helloworld/bin/helloworld.bin --conf=helloworld/conf/helloworld.conf

不妨设helloworld.conf的内容为:

LOG_PATH=../log/
LOG_NAME=helloworld.log
DATA_PATH=../data/
DATA_NAME=helloworld.data

出现的问题和上面一样,只有启动脚本放在bin目录下,才能正常启动,应改为:

LOG_PATH=helloworld/log/
LOG_NAME=helloworld.log
DATA_PATH=helloworld/data/
DATA_NAME=helloworld.data

不要以为这是小问题,能反映出程序员的功底与素养。

评论关闭。