Встроенный NetBeans .jar не работает с файлом класса внутри - PullRequest
0 голосов
/ 17 декабря 2010

У меня возникли проблемы при поиске пути к файлам в Netbeans. .

Проблема уже решена (проверенный ответ).

Сегодня я заметил еще одну проблему: когда проект завершен, я должен выполнить сгенерированный файл .jar, чтобы запустить программу, но это не такработать, потому что происходит ошибка: NullPointer (где загрузить файл) при доступе / открытии jar вне Netbeans.

Можно ли открыть файл с файлом класса в Java / Netbeans, который работает в Netbeans и даже влюбой каталог?

Я уже нашел несколько тем о моей проблеме на сайте, но ни одна из них не помогла.

Код:

File file = new File(URLDecoder.decode(this.getClass().getResource("file.xml").getFile(), "UTF-8"));

Ответы [ 2 ]

2 голосов
/ 17 декабря 2010

Проблема в том, что File относится только к файлам в файловой системе, а не к файлам в jars.

Если вы хотите использовать более общий локатор, используйте URL-адрес, который предоставляет getResource. Однако обычно вам не нужно знать местоположение файла, вам просто нужно его содержимое, в этом случае вы можете использовать getResourceAsInputStream ()

Это все предполагает, что ваш путь к классу настроен правильно.

0 голосов
/ 17 декабря 2010

Да, вы должны иметь возможность загружать файл в любом месте вашей файловой системы, к которому у процесса java есть доступ. Вам просто нужно явно указать путь в вашем вызове getResource.

Например:

File file = new File(URLDecoder.decode(this.getClass().getResource("C:\\foo\\bar\\file.xml").getFile(), "UTF-8"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...