Хорошо. Я разрабатываю в Linux программу Eclipse, которая должна читать текстовый файл. Идея состоит в том, чтобы JAR и текстовый файл находились в одной папке. Итак, я получаю путь к текстовому файлу следующим образом:
Client.class.getClassLoader().getResource("Client.class");
Это правильно возвращает путь, и я добавляю имя файла и получаю следующий путь:
/home/marquinio/workspace/my_project/info.txt
Проблема в том, когда я экспортирую свой проект в исполняемый файл JAR. JAR не может прочитать файл. Я дважды проверил, и все выглядит хорошо. Единственная проблема, которую я вижу, состоит в том, что теперь к пути добавлен какой-то «file:» в начале, например:
file:/home/marquinio/workspace/my_project/info.txt
, вероятно, поэтому я получаю исключение FileNotFoundException. JAR и текстовый файл находятся в одной папке.
Кто-нибудь знает, как это исправить? Почему Java ведет себя по-разному между Eclipse и выполнением JAR в командной строке?
Есть ли замена для "... getResource (...)", предоставляемого Java без этого "файла:"?
ПРИМЕЧАНИЕ: этот JAR-файл также должен быть совместим с окружением Windows. Все еще нужно проверить это.
Заранее спасибо.