標籤:
在java中相對路徑的設定是一個比較頭痛的問題:設定檔應該寫在哪裡,"/","./"等各自代表著什麼含義,普通的java工程和jsp(servlet)的路徑有什麼不同,這都是我們特別需要留意的。不然在程式開發中會死得很慘(個人以前深有體會,看似很簡單的路徑設定,往往要花很多的時間才能搞定)。
一、Java Project
1. 普通目錄的讀取
如果com.taobao.jifeng下的TestPath.java要讀取jifeng檔案夾下的file.txt檔案,路徑設定為
[c-sharp] view plaincopy
- File file = new File("jifeng/file.txt");
ps:在這裡“jifeng/file.txt”就是從該工程首目錄開始的,而“/”開始表示的是絕對路徑,“./jifeng/file.txt”的作用和“jifeng/file.txt”的路徑設定時相同的
2. 讀取properties檔案
從TestProperties.java讀取與它同目錄下的config.default.properties檔案,在java工程中properties的設定檔是被當做跟*.java檔案一樣使用的。
[c-sharp] view plaincopy
- Properties properties = new Properties();
- InputStream is = null;
- is = TestProperties.class.getResourceAsStream("/com/taobao/jifeng/properties/config.default.properties");
- try {
- properties.load(is);
- String key = "name";
- System.out.println(properties.getProperty(key));
-
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
properties檔案的具體操作可以參見:java中的Properties檔案操作使用舉例
ps:properties檔案的讀取方式大致是相同的,無論是javaproject,servlet等
二、可啟動並執行jar檔案
檔案位置
[c-sharp] view plaincopy
- File file = new File("jifeng/file.txt");
三、Servlet(JSP),伺服器是JBOSS
1. 頁面之間的跳轉,加入工程名為WebAndesProject,情況一和情況二相等
情況一
[c-sharp] view plaincopy
- <form action=/"./GetResultJSON/">" +
- "</form>"
情況二:
[c-sharp] view plaincopy
- "<form action=/"/WebAndesProject/GetResultJSON/">" +
- "</form>"
在servlet或jsp中“/”表示的jboss的總目錄,"./"表示的是jboss下面該工程的目錄,servlet路徑可設定
2. 讀取檔案
檔案位置:
servlet的擷取其絕對路徑的寫法:
[c-sharp] view plaincopy
- String path = request.getRealPath("config/config.default.properties");
四、log4j中路徑的設定
Log4J的位置,在myeclipse開發時
log4j.properties中的內容:
[c-sharp] view plaincopy
- log4j.appender.log = org.apache.log4j.DailyRollingFileAppender
- log4j.appender.log.File = hp/log.log
- log4j.appender.log.Append = true
- log4j.appender.log.Threshold = INFO
- log4j.appender.log.DatePattern=‘.‘yyyy-MM-dd
- log4j.appender.log.layout = org.apache.log4j.PatternLayout
- log4j.appender.log.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t ] %m%n
正式部署到jboss時,日誌產生會在jboss/bin/hp/log.log目錄下
java相對路徑設定