我必须通过 shell 脚本 (mainUTL.sh) 执行 java 实用程序 (UTL.jar)。它利用一个属性文件 (SetupUTL.properties)。
文件的位置如下 - /a/b/mainUTL.sh /a/b/UTL.jar /a/b/SetupUTL.properties
我在 mainUTL.sh 中设置了我的 CLASSPATH -
export CLASSPATH=$CLASSPATH:/a/b/SetupUTL.properties:/a/b/UTL.jar
我正在从命令提示符(登录 shell 是 csh)执行脚本,如下所示 -
sh mainUTL.sh <$ARG1> &
并且脚本 mainUTL.sh 具有以下 java 执行命令 -
nohup $JAVA_HOME/bin/java -d64 UTL.jar <$ARG1>
现在,当我从位置 /a/b/ 执行 shell 脚本时,如下所示
/a/b$: sh mainUTL.sh <$ARG1> &
该实用程序执行良好。但是当我从任何其他位置执行 shell 脚本时说 /a/ 如下
/a$: sh mainUTL.sh <$ARG1> &
该实用程序无法找到其属性文件。该实用程序具有以下代码 -
private boolean initPropertiesAndLog()
{
String str1 = null;
String str2 = null;
InputStream localInputStream = ClassLoader.getSystemResourceAsStream("SetupUTL.properties");
if (localInputStream == null) {
System.out.println("Unable to read SetupUTL.properties.properties file.");
return false;
}
我完全不了解 Java 代码,所以请告诉我我做错了什么,无法正常执行该实用程序。