2014-08-27 2 views
0

Я создал запущенную банку с затмением. Внутри моего проекта у меня есть папка с именем questionnaire, которая содержит некоторые текстовые файлы, которые я использую. Когда я запускаю свою runnable jar, она не работает, за исключением случаев, когда у меня есть в той же папке, что и jar в вопроснике к папке. Я пробовал некоторые решения, которые я читал в stackoverflow, например, в качестве папки с исходными папками, а также из свойств -> java build path -> libraries -> Добавить папку классов и добавить папку вопросника, но все равно не работает.Файл экспорта файла Eclipse не содержит папки

Это код:

File srcFolder = new File(".\\questionnaire"); 
if(!srcFolder.exists()){ 

    System.out.println("Directory does not exist."); 
    //just exit 
    System.exit(0); 

} 

И каждый раз, когда я получаю сообщение «Каталог не существует». Также, когда я разархивирую банку, нет вопросника для папки

+0

Чтобы установить папку в качестве исходной папки, является шагом в правильном направлении. Работает ли программа, когда вы ее запускаете из eclipse? – ToasteR

+0

Да, когда я выполняю его из затмения, он работает. Поэтому я думаю, что jar не содержит папку, и это проблема. – user1431148

+0

Eclipse по умолчанию по умолчанию загружает двоичные файлы внутри папки bin и устанавливает путь к классам в манифесте jar в эту папку bin. Добавьте '/' в свой путь к классам в конфигурации сборки. –

ответ

2

Чтобы добавить папку «вопросник» в свою банку, вам необходимо установить родительский каталог «вопросника» в качестве исходной папки.

Затем у вас будет вопросник «папка» в вашей банке. Однако вы не сможете получить доступ к нему через API файлов, поскольку это не будет обычная папка, а запись в вашу банку. Если вам просто нужно прочитать файлы из этой папки, посмотрите на метод Class.getRessourceAsStream(String).

1

Не рекомендуется экспортировать папку в банку. Кроме того, вы не можете получить файлы в папке, если каким-то образом вы их экспортируете. Вам снова нужно использовать класс JarFile для чтения содержимого папки.

Одна вещь, которую вы можете сделать, это создать банку без папки внутри нее. Используйте эту линию

File srcFolder = new File("questionnaire"); 

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

Читать эту thread

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