Classpath Java实用程序无法找到并读取其属性文件

Classpath Java实用程序无法找到并读取其属性文件,classpath,classloader,properties-file,Classpath,Classloader,Properties File,我必须通过一个shell脚本(mainUTL.sh)执行一个java实用程序(UTL.jar)。它使用一个属性文件(SetupUTL.properties) 文件的位置如下所示- /a/b/mainUTL.sh /a/b/UTL.jar /a/b/SETUPTL.properties 我在mainUTL.sh中设置了我的类路径,如下所示- export CLASSPATH=$CLASSPATH:/a/b/SetupUTL.properties:/a/b/UTL.jar 我正在命令提示符下执行脚

我必须通过一个shell脚本(mainUTL.sh)执行一个java实用程序(UTL.jar)。它使用一个属性文件(SetupUTL.properties)

文件的位置如下所示- /a/b/mainUTL.sh /a/b/UTL.jar /a/b/SETUPTL.properties

我在mainUTL.sh中设置了我的类路径,如下所示-

export CLASSPATH=$CLASSPATH:/a/b/SetupUTL.properties:/a/b/UTL.jar
我正在命令提示符下执行脚本(登录shell为csh),如下所示-

sh mainUTL.sh <$ARG1> &

我根本不知道Java代码,所以请告诉我我做错了什么,无法很好地执行该实用程序。

您不应该使用
ClassLoader.getSystemResourceAsStream

试试这个

this.getClass().getClassLoader().getResourceAsStream("your_prop_file")
如果失败,请尝试添加“/”:

/a/b$: sh mainUTL.sh <$ARG1> &
/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;
    }
this.getClass().getClassLoader().getResourceAsStream("your_prop_file")
this.getClass().getClassLoader().getResourceAsStream("/your_prop_file")