應用絕對路徑與相對路徑

來源:互聯網
上載者:User
這個問題就得看你的設定檔放在哪裡啦,如果放在了項目的Classes目錄(或子目錄)下,你可以用**.Class.getResource('相對路徑')來擷取設定檔路徑.如果是其他目錄,那你只能在項目啟動時通過ServletContext擷取項目根目錄+設定檔的目錄來確定路徑.並把路徑放到類檔案可以引用的地方啦.
以下是我在做項目時寫的一個用於擷取路徑的類,寫的可能不太好.但還是希望能對你有所協助:
package com.example.web;

import java.io.File;
import java.net.URL;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

/**
* 路徑擷取類
* */
public class WebPath {
/**
* 擷取項目根目錄的絕對路徑
*
* @return 如:F:\TongJianpeng\J2EEUtil
* */
public static String getAbsolutePathWithProject() {
return System.getProperty("user.dir");
}

/**
* 擷取項目所在盤符
* */
public static String getDriverPathWithProject() {
return new File("/").getAbsolutePath();
}

/**
* 擷取項目根目錄的絕對路徑
*
* @return 項目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
* */
public static String getAbsolutePathWithWebProject(
HttpServletRequest request) {
return request.getSession().getServletContext().getRealPath("/");
}

/**
* 擷取項目根目錄下的指定目錄的絕對路徑
*
* @param 項目根目下的指定目錄
* .例如:/login/
* @return 項目根目下的指定目錄.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
* */
public static String getAbsolutePathWithWebProject(
HttpServletRequest request, String path) {
return request.getSession().getServletContext().getRealPath(path);
}

/**
* 擷取項目根目錄的絕對路徑
*
* @return 項目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
* */
public static String getAbsolutePathWithWebProject(ServletContext context) {
return context.getRealPath("/");
}

/**
* 擷取項目根目錄下的指定目錄的絕對路徑
*
* @param 項目根目下的指定目錄
* .例如:/login/
* @return 項目根目下的指定目錄.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
* */
public static String getAbsolutePathWithWebProject(ServletContext context,
String path) {
return context.getRealPath(path);
}

/**
* 擷取項目classpath目錄的絕對路徑
*
* @return classes目錄的絕對路徑<br/>
* file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/
* */
public static URL getAbsolutePathWithClass() {
return WebPath.class.getResource("/");
}

/**
* 擷取項目classPath目錄下的指定目錄的絕對路徑
*
* @param path
* classes目錄下的指定目錄.比如:/com/
* @return file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/
* */
public static URL getAbsolutePathWithClass(String path) {
return WebPath.class.getResource(path);
}

/**
* 擷取指定類檔案的所在目錄的絕對路徑
*
* @param clazz
* 類
* @return 類檔案的絕對路徑.例如:<br/> 包com.Aries.Util.Web下的Main.java類.<br/>
* 路徑為:file:/
* F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/Aries/Util/Web/
* */
public static URL getAbsolutePathWithClass(Class clazz) {
return clazz.getResource("");
}
}
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.