Относительный путь в Java для экспорта csv-файлов
Я разработал Java WebApp на системе Windows. Это аналитическая программа, в которой результирующий набор экспортируется в csv-файл для Excel с помощью кнопки export.
Теперь факт: я жестко закодировал путь к файлу для экспорта:
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;
}
Это прекрасно работает в моей локальной системе.
Теперь я развернул файл .war
на tomcat6 в системе Linux. Теперь этот путь больше не работает. Кто-нибудь может мне помочь? Я не знаю, как это решить.
Программа предназначена для другие пользователи в моей компании, которые должны иметь возможность экспортировать csv-файл на своем личном диске / пространстве / количестве на сервере. У каждого есть свой диск на этом сервере с буквой диска (h:).
3 ответа:
Я настоятельно рекомендую не писать файлы в относительном пути, так как это будет интерпретироваться по-разному в разных системах (OS) Последнее, что вам нужно, это отладка, где файл был создан
Вы можете выбрать один из следующих подходов
1) имеют значение, объявленное В.файл свойств и считывает значение из программы java. таким образом, когда среда изменяется, нужно только отредактировать файл свойств. Поэтому необходима перекомпиляция
2) или лучше бы вы могли иметь эту таблицу БД и использовать ее.
3) Вы можете удалить переменную контекста приложения в 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>
Вместо
h:/VR-Analyse-Tool_Excel Output
Использовать
/home/VR-Analyse-Tool_Excel Output
Создайте
h:/home
Каталог на вашем локальном компьютере, и он должен работать в обеих средах.
Добавьте свой путь к файлу в web.xml при развертывании в
Windows file(h:your_filepath) , Unix (home/your_filepath)
Паутина.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-код
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; }