Загрузить файл за пределами Jar

1

У меня есть папка lib, содержащая все мои файлы Jar и в одном из классов файлов Jar, у меня есть основной метод, который вызывается пакетным файлом. В том же папке, что и моя библиотека, у меня есть другой путь структуры папок /to/a/resource/myresource.txt

Как загрузить этот файл из класса внутри Jar файла? Я попробовал следующее, и оба привели к null:

getClass().getResource("path/to/a/resource/myresource.txt")
getClass().getClassLoader().getResource("path/to/a/resource/myresource.txt")

Есть идеи? Даже с абсолютным путем, это провалилось! Какие-либо предложения?

  • 1
    Используйте FileReader для этого.
  • 0
    Вы обновили запись Class-Path в манифесте банки?
Теги:

5 ответов

1
Лучший ответ

Вы можете использовать:

getClass().getResourceAsStream("path/to/a/resource/myresource.txt")

Однако для этого вам нужно добавить путь '.' к записи класса Path файла JAR MANIFEST.MF.

http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

0

Ваш путь кажется недостаточно точным. Кроме того, этот вопрос уже работал.

Посмотрите здесь:

Как загрузить файл за пределами, но относительно JAR?

Как получить путь к запущенному файлу JAR?

0

Вы можете загрузить файл из файловой системы

new FileReader(relativeOrAbsoluteFilesystemLocation)

или вы можете добавить соответствующий каталог в свой путь к классам:

java -cp "lib/*;lib" ...

а затем используйте свой оригинальный метод.

(Unix использует : вместо ; как разделитель classpath)

0
File file = new File("C:/folder/myFile.txt");

или если вы знаете относительный путь:

 File file = new File("../../path/myFile.txt");
0

Две вещи, которые вы пытались использовать для чтения файлов из класса, поскольку эта папка не находится в вашем пути к классам, вы можете прочитать ее непосредственно с любым из классов Java IO File.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню