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.