2013-03-05 107 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; 
}