程序找不到properties文件

程序通过读取配置spark.properties文件获取相关属性信息,文件所在目录resources下

 执行程序报错如下:

java.io.FileNotFoundException: spark.properties (系统找不到指定的文件。)

at java.io.FileInputStream.open0(Native Method)

at java.io.FileInputStream.open(FileInputStream.java:195)

at java.io.FileInputStream.<init>(FileInputStream.java:138)

at java.io.FileInputStream.<init>(FileInputStream.java:93)

at com.cnpc.common.LoadProperties.load(LoadProperties.scala:13)

at com.cnpc.test$.main(test.scala:11)

at com.cnpc.test.main(test.scala)

 

 程序代码

classLoadProperties {
  def load(propertiesFile:String)={
    val config =
      try {
        val prop = new Properties()
         prop.load(new FileInputStream(propertiesFile))
        prop
      } catch {
        case e: Exception =>
          e.printStackTrace()
          sys.exit(1)
      }
    config
  }
}

 

解决办法

替换上如程序中文件读取部分

 

//        解决办法1
val path =

Thread.currentThread().getContextClassLoader.getResource(propertiesFile).getPath
       prop.load(new FileInputStream(path))

//        解决方法2
prop.load(new FileInputStream(getClass.getClassLoader.getResource(propertiesFile).getFile()))

 

原文地址:https://www.cnblogs.com/OS-BigData/p/8526914.html