gpt4 book ai didi

java - shell脚本: java program can't find property file when starting by sh

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:32 27 4
gpt4 key购买 nike

我正在 Red Hat Enterprise Linux Server 第 5 版 (Tikanga) 下启动一个 java 程序。

目录结构:
- bin ->sc.jar,start-sc.sh,sc-lib-all.jar
-conf->log4j-sc.properties,sc.properties

运行java程序的命令(运行良好):

/usr/java/jdk1.6.0_37/bin/java -Xmx1024M -Dlog4j.configuration=file:../conf/log4j sc.properties -jar sc.jar -config ../conf/sc.properties

如果我将它放入 shell 脚本中,java 程序将无法再找到 prop 文件。shell 脚本 (start-sc.sh) 如下所示:

#!/bin/sh
/usr/java/jdk1.6.0_37/bin/java -Xmx1024M -Dlog4j.configuration=file:../conf/log4j-sc.properties -jar sc.jar -config ../conf/sc.properties

我是 shell 脚本的新手,我缺少什么想法吗?谢谢!

最佳答案

我猜你不是从 start-sc.sh 所属的 bin 目录启动 shell 脚本的。

为了解释清楚,让我们举个例子。

比如说,你的脚本在这里:

/foo/bar/bin/start-sc.sh

如果您在/foo/bar/bin/下启动它,它(相对路径)应该可以工作。

但是如果您从 /home/yourHome/someDir/ 启动脚本,相对路径将指向 $PWD/../,即 /home/yourHome/

您可以在启动 java 应用程序之前先在脚本中 cd/foo/bar/bin/ 。或者做类似的事情:

a=`dirname $0`
if [ $a = '.' ];then
a=`pwd`
fi
cd $a
/usr/java/jdkxxxx/java .....

关于java - shell脚本: java program can't find property file when starting by sh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13642962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com