Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение ресурса в апплете 
V
    Опции темы
Mirkes
Дата 10.10.2012, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 2
Всего: 17



Я прочитал все что было ранее на форуме. В приципе я смог решить задачу, но решение не нравится.
Есть Class, лежащий в пакете mapp. Есть набор ресурсных файлов, лежащих в папке resource.
Если я помещаю папку resource в папку mapp, то все работает.
Если же я помещаю ее на один уровень выше, непосредственно в корень jar, то
при запуске из IDE обращение 
Код

           URL in = getClass().getResource("../resource/List.lst"); 

работает, а из апплета - нет. Более того, при запуске Jar-а отдельно, тоже не работает.
Подскажите, пожалуйста, как обратиться к каталогу уровнем выше того, в котором лежит класс, из которого идет обращение


--------------------
Mirkes
PM MAIL   Вверх
mstalker26
Дата 10.10.2012, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 4.7.2009

Репутация: 3
Всего: 11



Странно достаете ресурсы. Посмотрите http://forum.vingrad.ru/index.php?showtopi...t&p=2448932

P.S. Расскажите как собираете (экспортируете) jar.
--------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
PM   Вверх
Mirkes
Дата 10.10.2012, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 2
Всего: 17



Я использую JDeveloper. Выгружаю jar выполнением команды Deploy. 
В посте я написал вариант как я добирался до каталога.
Уточняю. В jar имеется следующая структура

adflibREADME.txt
mapp
META-INF
pca1
pcam

Класс, из которого я обращаюсь к ресурсам, принадлежит к пакету mapp. Я бы предпочет каталог resource в корневом каталоге Jar, но тогда класс не может добраться до ресурса. Если я помещаю каталог resource в каталог mapp, то мне удается добраться до ресурсов. Собственно об этом и был вопрос.


--------------------
Mirkes
PM MAIL   Вверх
dorogoyIV
Дата 11.10.2012, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Код

import mapp.*;

?
PM MAIL   Вверх
Mirkes
Дата 11.10.2012, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 2
Всего: 17



Цитата(dorogoyIV @ 11.10.2012,  09:59)
Код

import mapp.*;

?

Не понял. Класс, обращающийся к ресурсам и так в пакете mapp. 


--------------------
Mirkes
PM MAIL   Вверх
dorogoyIV
Дата 11.10.2012, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Mirkes @  11.10.2012,  11:34 Найти цитируемый пост)
Класс, обращающийся к ресурсам и так в пакете mapp. 

тогда
Код

import resource.*;

попробуй, я не помню как там с апплетами...

Добавлено через 1 минуту и 52 секунды
если у тебя там только картинки или тексты, импорт не нужен.
импорт только для классов

Добавлено через 5 минут и 49 секунд
корнем в джаре является сам джар.
не должно быть проблем с доступом к любому уровню.
может быть слеш где то забыл?
Код

"/resource/1.png"

PM MAIL   Вверх
Mirkes
Дата 12.10.2012, 06:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 2
Всего: 17



Описываю точно что делал.
В пакете mapp есть класс StdData, который обращается к ресурсам. Обращение происходит в методе, код которого приведен ниже
Код

    private void loadList() {
        patterns.removeAllItems();
        
        URL u = getClass().getResource("resource/List.lst");
        System.out.println(u);
        u = getClass().getResource("/resource/List.lst");
        System.out.println(u);
        u = getClass().getResource("../resource/List.lst");
        System.out.println(u);
        
        
        InputStream in = getClass().getResourceAsStream("resource/List.lst");
        if (in == null) {
        } else {
            BufferedReader br;
            try {
                br = new BufferedReader(new InputStreamReader(in));
                String line;
                // read first line and analize it
                line = br.readLine();
                while (line != null) {
                    patterns.addItem(line);
                    line = br.readLine();
                }
                br.close();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    }


Нас сейчас интересует только фрагмент, где получается url, я просто привел метод целиком.
Структура приложения (jar)
Код

adflibREADME.txt 
mapp             
META-INF         
pca1             
pcam             
resource         

первый файл, остальное каталоги.
В каталоге mapp так же есть каталог resource.

Результаты запусков
1. из JDeveloper
Код

file:/C:/JDeveloper/mywork/PCAMasterApplet/PCAMasterApplet/classes/mapp/resource/List.lst
file:/C:/JDeveloper/mywork/PCAMasterApplet/PCAMasterApplet/classes/resource/List.lst
file:/C:/JDeveloper/mywork/PCAMasterApplet/PCAMasterApplet/classes/resource/List.lst

2. Запуск jar как отдельного приложения (приложение сформировано так, что может раотать как апплет и как desk top приложение)
ничего не получил, поскольку эта сволочь windows 7 не дала связи с консолью.
3. Запуск из апплета
Код

network: Cache entry not found [url: file:/C:/JDeveloper/mywork/Html%20for%20applet/PCAM/MasterAppletR.jar, version: null]
network: Cache entry not found [url: file:/C:/JDeveloper/mywork/Html%20for%20applet/PCAM/MasterAppletR.jar, version: null]
jar:file:/C:/JDeveloper/mywork/Html%20for%20applet/PCAM/MasterAppletR.jar!/mapp/resource/List.lst
jar:file:/C:/JDeveloper/mywork/Html%20for%20applet/PCAM/MasterAppletR.jar!/resource/List.lst
network: Cache entry not found [url: file:/C:/JDeveloper/mywork/Html%20for%20applet/PCAM/, version: null]
null


Таки я дурак. Оказывается добраться до корня можно. Сработал второй вариант.
Спасибо.  smile 

Это сообщение отредактировал(а) Mirkes - 12.10.2012, 06:20


--------------------
Mirkes
PM MAIL   Вверх
dorogoyIV
Дата 12.10.2012, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Mirkes @  12.10.2012,  06:18 Найти цитируемый пост)
Таки я дурак. Оказывается

да неее
это особенности работы с IDE - ситуация почти не контролируется, IDE все делает сама - что надо, и что не надо.

PS: IDE for Assembler Development - прикольно  smile 
PM MAIL   Вверх
mstalker26
Дата 12.10.2012, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 4.7.2009

Репутация: 3
Всего: 11



чтобы уж точно прояснить все smile
http://docs.oracle.com/javase/tutorial/uis...tml#getresource
--------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.