title: FileNotFoundException when using java properties file
body: <p>am asking this question after doing a lot of research and also implementing it in my code after the research but I ended up with FileNotFoundException.What exactly am doing here is I want to avoid hardcoding in my java code so am creating a properties file with name as Constants.properties and am calling it in my java code. but it says that it is not finding the file. My properties file is in the src folder of the project. Below is the code snippet. Any suggestions?</p>
  
  <p>Properties file:</p>
  
  <pre><code>executable.run = C:\\server\\lrd.exe
  incoming.file = C:\\file\\test.ic
  executable.params1 = -z
  executable.params2 = -a[+]
  log.file = C:\\TESTFile\\test.txt
  </code></pre>
  
  <p>Java Code:  This is the class file which has the properties file details.</p>
  
  <pre><code>public class PropInfo {
      static private PropInfo _instance =  null;
      public String executable =  null;
      public String filein = null;
      public String params1 = null; 
      public String params2 = null; 
      public String log = null; 
  
      protected PropInfo(){
          try{
              InputStream file = new FileInputStream(new File("Constants.properties"));
              Properties props = new Properties();
              props.load(file);
              executable = props.getProperty("executable.run");
              filein = props.getProperty("incomin.file");
              params1 = props.getProperty("executable.params1");
              params2 = props.getProperty("executable.params2");
              log = props.getProperty("log.file");
          } 
          catch(Exception e){
              System.out.println("error" + e);
          }    
      }
  
      static public PropInfo instance(){
          if(_instance == null){
              _instance = new PropInfo();
          }
          return _instance;
      }
  }
  </code></pre>
  
  <p>Main Class:</p>
  
  <pre><code>try{
      PropInfo propinfo = PropInfo.instance();
      String connString = propinfo.executable + " " + propinfo.params1 + " " + 
              propinfo.filein + " " + propinfo.params2 + " " + " " + propinfo.log ;
  
      Runtime rt = Runtime.getRuntime();
      // Process pr = rt.exec 
      // (PropInfo.executable+" "+PropInfo.params1+" "+PropInfo.filein+" "
      //+PropInfo.params2+" "+PropInfo.log);
      Process pr = rt.exec(connString);
  
      BufferedReader input = new BufferedReader(new InputStreamReader (pr.getInputStream()));
  
      String line=null;
      StringBuffer start= new StringBuffer();
      while((line=input.readLine()) != null) {
          start.append("Started" + line + "\n");
          System.out.println(line);
      }
  
      // System.out.println("browse");
  
  }
  catch (Throwable t)  
  {  
      t.printStackTrace();  
  }  
  finally 
  {  
  }
  </code></pre>
  
  <p>Gives this Exception:</p>
  
  <pre><code>errorjava.io.FileNotFoundException: Constants.properties (The system cannot find the  
  file specified)
  java.io.IOException: Cannot run program "null": CreateProcess error=2, The system  
  cannot find the file specified
  at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
  at java.lang.Runtime.exec(Runtime.java:615)
  at java.lang.Runtime.exec(Runtime.java:448)
  at java.lang.Runtime.exec(Runtime.java:345)
  at com.emc.clp.license.StartTest.main(StartTest.java:44)
  Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the 
   file     specified
  at java.lang.ProcessImpl.create(Native Method)
  at java.lang.ProcessImpl.&lt;init&gt;(ProcessImpl.java:288)
  at java.lang.ProcessImpl.start(ProcessImpl.java:133)
  at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023)
  ... 4 more
  </code></pre>