2016-02-29 2 views
0

Я написал приложение, которое использует SQL-скрипт из текстового файла. Я поместил файл .txt в корневую папку проекта.Относительный путь файла, необходимый банку внутри веб-проекта

enter image description here

После того как я экспортировал проект в банку и поместить его в папку/Lib внутри веб-проекта. Процесс, который использует файл .txt, не может найти его.

enter image description here

Где поместить файл?

+0

Вы должны загрузить этот файл в качестве ресурса пути к классам, а не как добросовестный файл. – fge

+0

Можете ли вы мне сослаться на какой-то пример, пожалуйста? – MaxG

ответ

1

Если в контексте webapp или любой работающей банки в этом отношении не использовать ресурсы файловой системы; они могут работать только в среде IDE.

Используйте это вместо того, чтобы (например, есть и другие способы сделать это):

public class MyClass 
{ 
    private static final URL RESOURCE_URL; 

    static { 
     RESOURCE_URL = MyClass.class.getResource("/my/resource"); 
     if (RESOURCE_URL == null) 
      throw new ExceptionInInitializerError("/my/resource not found"); 
    } 
    // bla bla... 

    // code to load from the resource: 

    try (
     final InputStream in = RESOURCE_URL.openStream(); 
     // others, as needed 
    ) { 
     // work here 
    } 
+0

Извините, я не понимаю разницы между указанием пути в файле и указанием его в ресурсе. Пожалуйста, обратитесь к TABLE.txt, как показано на рисунках. – MaxG

+0

Как вы думаете, будет ли файл _file_ с именем 'TABLE.txt', когда вы упакуете ваш webapp в качестве войны? Нет. Будет ли для этого ресурс? Да. Вы должны использовать тот, который является файлом в вашей среде IDE в качестве ресурса, поскольку, когда Webapp будет запущен, _it не будет файлом. Что касается того, где положить это, поместите его в каталог ресурсов для вашего webapp (где он находится в зависимости от проекта, но обычно он находится в 'src/main/resources'). – fge

Смежные вопросы