2013-03-05 132 views
3

我在Windows系統上開發了一個Java WebApp。它是一個分析程序,結果集通過導出按鈕導出到csv File for Excel。用於導出csv文件的Java中的相對路徑

現在的事實:我硬編碼路徑的文件導出到:

public String button1_action() { 
    GenerateCSV generateCSV = new GenerateCSV(); 

    Date zeitstempel = new Date(); 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("_dd.MM.yyyy_HH.mm.ss"); 

    generateCSV.generateCsvFile("h:/VR-Analyse-Tool_Excel Output" +simpleDateFormat.format(zeitstempel) +".csv", getSessionBean1().getExistingRightsList()); 

    return null; 
} 

,我的本地系統上正常工作。

現在我已經在Linux系統上的tomcat6上部署了.war文件。現在這條路不再起作用了。有人能幫助我嗎?我不知道如何解決這個問題。

該程序適用於我公司的其他用戶,他們應該能夠在服務器上的個人驅動器/空間/金額上導出csv文件。每個人都有自己的驅動器在這個服務器上的驅動器號(h :)。

回答

0

我強烈反對意見的書面文件在相對路徑中,因爲這將在不同系統中被解釋爲不同EMS(OS) 你想要的最後一件事是調試該文件得到了創建

你可以從以下任何的選擇方法

1)具有在屬性文件中聲明的價值和閱讀價值java程序。 這種方式當環境發生變化時,只需要編輯屬性文件即可。所以重新編譯需要

2)或者更好的是你可以有這個Db表並使用它。

3)您可以delare web.xml中的應用程序上下文變量,並用它

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app> 
    <context-param> 
    <param-name>csv_file_path</param-name> 
    <param-value>h:/your_file_path</param-value> 
    </context-param> 
. 
. 
. 
. 
</web-app> 
+0

大家好,THX您立即作出反應。我會用屬性文件來嘗試它。聽起來不錯。 – ChrisFX 2013-03-05 11:22:31

+0

請將帖子標記爲已接受。乾杯 – Sudhakar 2013-03-05 11:26:09

0

而不是

h:/VR-Analyse-Tool_Excel Output 

使用

/home/VR-Analyse-Tool_Excel Output 

在本地計算機上創建一個

h:/home 

目錄,它應該在兩種環境中工作。

0

Windows file(h:your_filepath) , Unix (home/your_filepath)

的web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app> 
    <context-param> 
    <param-name>downloadFilePath</param-name> 
    <param-value>h:your_filepath</param-value> 
    </context-param> 
. 
. 
. 
. 
</web-app> 

Java代碼進行部署時添加您的文件路徑在web.xml

public String button1_action() { 
    GenerateCSV generateCSV = new GenerateCSV(); 
    String filepath = getServletContext().getInitParameter("downloadFilePath"); 
    Date zeitstempel = new Date(); 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("_dd.MM.yyyy_HH.mm.ss"); 

    generateCSV.generateCsvFile(filepath +simpleDateFormat.format(zeitstempel) +".csv", getSessionBean1().getExistingRightsList()); 

    return null; 
}