JAVA獲取程式(打成jar或classpath)所在目錄
阿新 • • 發佈:2019-01-09
一、簡述
JAVA獲取程式(打成jar或classpath)所在目錄。
二、程式碼
package dearcloud.utils.context; import dearcloud.utils.StringUtils; import java.io.File; public class AppContext { public static String baseDirectory() { try { String path = ClassLoader.getSystemResource("").getPath();if (StringUtils.isNullOrEmpty(path)) return getProjectPath(); return path; } catch (Exception ignored) { } return getProjectPath(); } private static String getProjectPath() { java.net.URL url = AppContext.class.getProtectionDomain().getCodeSource() .getLocation(); String filePath= null; try { filePath = java.net.URLDecoder.decode(url.getPath(), "UTF-8"); } catch (Exception e) { e.printStackTrace(); } if (filePath.endsWith(".jar")) filePath = filePath.substring(0, filePath.lastIndexOf(File.separatorChar) + 1); java.io.File file= new java.io.File(filePath); filePath = file.getAbsolutePath(); return filePath; } }