Fix the compatibility problem of ConfigUtil for Windows environment (#903)

This commit is contained in:
Lin.Liang 2019-07-10 19:21:13 +08:00 committed by Eric Zhao
parent 4a9543fd1f
commit 326dd4434d
2 changed files with 12 additions and 2 deletions

View File

@ -45,7 +45,7 @@ public final class ConfigUtil {
*/
public static Properties loadProperties(String fileName) {
if (StringUtil.isNotBlank(fileName)) {
if (fileName.startsWith(File.separator)) {
if (absolutePathStart(fileName)) {
return loadPropertiesFromAbsoluteFile(fileName);
} else if (fileName.startsWith(CLASSPATH_FILE_FLAG)) {
return loadPropertiesFromClasspathFile(fileName);
@ -76,6 +76,16 @@ public final class ConfigUtil {
return properties;
}
private static boolean absolutePathStart(String path) {
File[] files = File.listRoots();
for (File file : files) {
if (path.startsWith(file.getPath())) {
return true;
}
}
return false;
}
private static Properties loadPropertiesFromClasspathFile(String fileName) {
fileName = fileName.substring(CLASSPATH_FILE_FLAG.length()).trim();

View File

@ -49,7 +49,7 @@ public class ConfigUtilTest {
}
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write(LOG_OUTPUT_TYPE + "=" + logOutputType);
out.write("\n");
out.write(System.getProperty("line.separator"));
out.write(LOG_DIR + "=" + dir);
out.flush();
out.close();