Re: Change working directory for build

Andy Levy <[email protected]>
Newsgroups gmane.comp.java.anthill
Message-ID <[email protected]>
On 12/28/05, Varban <[email protected]> wrote:
> Hi Andy,
>
> it seems strange that Anthill will not run the ant script from the root of the
> downloaded source. Since Anthill is aware of where the source is downloaded,
> it changes to that directory and then runs the ant script from there.  It is
> possible that because the ant process is not started in any console, any
> child process will not see the current directory that ant was ran from but
> insdead will point to the cmd.exe location that was used to execute the ant
> process.

I think that's exactly what's happening.

> I am not sure how your A.java class locates the conf directory but I would try
> and use the ClassLoader.getResourceAsStream and ClassLoader.getResource
> methods to locate the properties files (you will need to add the directories
> that hold them to the classpath). This way you will be completely independent
> from the current working directory and the location of the code.

Right now we have this:

private static final String confDir = "./conf";
private static final String serializedFile = confDir +
"/HPLGproperties.serialized";

File dir = new File(confDir);
    Properties prop = new Properties();
    String absPath = null;
    try {
      absPath = new File(".").getCanonicalPath().replace('\\','/');
    } catch (Exception e) {
      e.printStackTrace();
    }

    for (int i=0; i < dir.list().length; i++) {
      String file = dir.list()[i];
      String[] split = file.split("\\.");
      if (split.length<2 || ! split[1].equals("properties"))
        continue;
      //System.out.println("filename='" + split[0] + "'");
      try {
	FileInputStream fis = new FileInputStream( new File(dir + "/" + file) );
	Properties p = new Properties();
	p.load(fis);
	fis.close();
	for (Enumeration e =  p.propertyNames(); e.hasMoreElements(); ) {
	  String el = (String) e.nextElement();
	  prop.setProperty(split[0] + "." + el,p.getProperty(el));
	}
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

I think once we get past having confDir set correctly, everything will
be OK.  My Java's beyond rusty; this was actually written by someone
else and I'm just doing process improvements, I'm not supposed to do a
lot of code changes on this.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.