Апплет: загрузка изображения в jar-файл, которого нет в домашнем каталоге - PullRequest
3 голосов
/ 08 декабря 2011

этот заголовок может показаться запутанным, поэтому я объясню свою проблему.Я преобразую свое Java-приложение в апплет, и оно отлично работает в Eclipse, и когда я делаю HTML-файл с тегами.Но когда я загружаю свой апплет в google sites и выполняю его через html-файл, сама программа загружается нормально, но пытается загрузить свои изображения с моего жесткого диска, а не из файла JAR.Как я могу это изменить?

HTML:

<applet
archive="https://sites.google.com/site/projectteagame/tea.jar"
code="ymte.core.Loader"
width=300
height=300> </applet>

Редактировать:

Я храню все свои файлы в банке, для скорости и простоты.Мой код для получения изображений:

img = ImageIO.read(Loader.class.getResourceAsStream("/res/object/ball.bmp"));

Это работает в моей IDE, но не в онлайн-использовании

1 Ответ

0 голосов
/ 08 декабря 2011

Вы можете предоставить свой код, чтобы сообщить нам, как вы получаете изображение, но я полагаю, что оно не входит в банку.Чтобы сделать это, поместите jar в ваши пакеты и получите его следующим образом:

Class.getResourceAsStream ("foo");

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)

Это, однако, немного бесполезно.Предпочтительным способом было бы поместить ваше изображение в каталог вашего проекта, который находится за пределами ваших источников, что-то вроде изображений или ресурсов, а затем связать его в банку апплета.Используйте ваш любимый инструмент сборки (муравей, мавен, плющ), чтобы включить изображение в банку.Структура каталогов может быть такой:

project
-src
-resources
 -<yourImage>

Тогда вы получите доступ к своему изображению в виде URL или файла, используя относительный путь.Если вы предоставите больше кода, возможно, вы сможете получить дополнительную помощь.

РЕДАКТИРОВАТЬ: Поскольку ваш ресурс находится в вашем апплете, вы можете поместить его в один из ваших пакетов,Затем, далее в своем коде вы можете сделать

Class.getResourceAsStream 

, и именно так вы можете получить свое изображение, поскольку оно гарантированно будет в вашем classpath.

В основном, если у вас есть структура пакета, подобная этой:

project src com.foo.bar com.foo.bar.stuff com.foo.bar.resources -yourImage -otherStuff -ResourceGetter.java

Вы можете сделать следующее в своем ResourceGetter

Class.getResourceAsStream("yourImage");

, который поможет вамваше изображение, и вы можете загрузить его как обычно.

...