1. 程式人生 > >JAVA獲取程式(打成jar或classpath)所在目錄

JAVA獲取程式(打成jar或classpath)所在目錄

一、簡述

  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; } }