ссылка на файлы данных в банках - PullRequest
0 голосов
/ 29 сентября 2010

Моя Java-программа ссылается на множество файлов данных.Я поместил их в каталог верхнего уровня с именем data /, вместе с src / и bin /.В Eclipse ссылки на data / и ../data/, похоже, работают.Когда я запускаю его из командной строки, работает только ../data/.

Когда я помещаю bin / и data / каталоги в банку и правильно устанавливаю точку входа, кажется, что он не знает, что я хочу получить доступ к каталогу data / directory внутри банкаЕдинственный способ заставить его работать - это установить ссылки на ../data/ и поместить jar в каталог bin.Это, очевидно, не приносит мне никакой пользы, потому что это не самодостаточно.

Что мне нужно сделать с ссылками, чтобы они работали?

Спасибо

Ответы [ 3 ]

3 голосов
/ 29 сентября 2010

Я бы порекомендовал вам обращаться к файлам относительно пути к классу, будь то в Eclipse или в скомпилированном JAR.

Существует несколько способов сделать это, но основной подход, основанный только на JDK, заключается в использовании метода getResourceAsStream() класса, который дает вам доступ к объекту InputStream, который вы можете прочитать.

1 голос
/ 29 сентября 2010

Если ваши ресурсы находятся в файле JAR, рассмотрите возможность использования этого метода для их чтения:

class Class {
    InputStream getResourceAsStream(String name)
}

Это ищет ресурс относительно класса (который может быть в банке), а нев рабочий каталог.

0 голосов
/ 29 сентября 2010

Спасибо, что указали мне этот путь, ребята.Я закончил тем, что сделал действительно взломанный обходной путь, потому что я еще не очень хорош с IO.Я использовал getClass () для создания URL:

http://forums.sun.com/thread.jspa?threadID=5258488

Затем создал новый объект File из этой строки (новый файл (файл)):

String file= url.toString (). replaceFirst ("file:", "");

Это позволило мне сохранить тот же код, который ссылался на файловые объекты.

...