Когда я сталкиваюсь с этой проблемой, я обычно создаю файл свойств и помещаю каталог для сохранения файлов в файл свойств. Тогда у меня может быть другой путь для Linux и Windows, или для сервера A и сервера B. Для вас может быть достаточно просто придумать путь и жестко его кодировать, но я часто нахожу, что мне нужны разные пути на разных серверах. Например, в моем нынешнем проекте у нас есть три экземпляра Tomcat, работающих на одном физическом боксе для разных этапов тестирования. Мы не хотим, чтобы файлы, в которые они пишут, шли в один каталог: у каждого должен быть свой

от вопрос уже есть ответ здесь:

Рекомендуемый способ сохранения загруженных файлов в приложении сервлета 2 ответа

Я загружаю файл, для которого я хочу указать относительный путь, потому что программа должна работать как в Linux, так и в Windows env.

Это то, что я использую для загрузки

realPath = getServletContext().getRealPath(/files);
destinationDir = new File(realPath);
if(!item.isFormField())
                {
                    File file = new File(destinationDir,item.getName());

                    item.write(file);
}

Любые другие средства, чтобы напрямую указать относительный путь здесь

File file = new File(destinationDir,item.getName());

Ответы на вопрос(2)

Ваш ответ на вопрос