private static List<File> createPossibleHomeDirList() { List<File> homeDirCheckList = new ArrayList<File>(4); // include codeSource dir in check list CodeSource lib = OCSSWRuntimeConfig.class.getProtectionDomain().getCodeSource(); if (lib != null) { URL libUrl = lib.getLocation(); if (libUrl.getProtocol().equals("file")) { String libPath = libUrl.getPath(); File libParentDir = new File(libPath).getParentFile(); if (libParentDir != null) { // include one above libParentDir if (libParentDir.getParentFile() != null) { homeDirCheckList.add(libParentDir.getParentFile()); } // include libParentDir homeDirCheckList.add(libParentDir); } } } // include CWD in check list homeDirCheckList.add(new File(".").getAbsoluteFile()); // include one above CWD in check list homeDirCheckList.add(new File("src/test").getAbsoluteFile()); return homeDirCheckList; }