Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 128
1

Как сделать апплет независимым от среды исполнения

24.04.2011, 12:43. Показов 4475. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не, ну здесь может кто-нибудь дать внятный ответ, как сделать апплет независимым от той среды, в которой исполняется? Т.е. я написал апплет, но могу просматривать его только на своем же компе с J2SDK. Другие машины его не видят. Вопрос вроде бы ж простой, а ответить толком никто не может (или не хочет?..). Мучаюсь, мучаюсь- а все без толку. Зла уже не хватает. Я не специалист в java, работаю с PHP и mySQL, ну вот возникла у меня необходимость написать апплет. Для этого скачал J2SDK с NetBeansIDE, написал простой апплет, все вроде бы- конец мучениям, так нет же- выскочила проблема, которую ждал меньше всего- свой апплет только я и вижу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2011, 12:43
Ответы с готовыми решениями:

Как сделать дизайн элементов jQuery UI независимым?
Добрый вечер. Есть проблема: хочу добавить на сайт меню-аккордеон и ранжированный слайдер,...

Как сделать клик мыши независимым от точки экрана?
Как сделать, что бы "div", после открытия по клику среднему, закрывался при клике той же кнопки вне...

Как сделать апплет из проекта?
package textinfile; import java.awt.Color; import java.io.BufferedReader; import...

Сделать сайт регионо-независимым
Здравствуйте! Проблема такая: Есть сайт site.ru. В результатах поиска Яндекса (сниппетах) у него...

33
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 128
25.04.2011, 16:04  [ТС] 21
Author24 — интернет-сервис помощи студентам
to SVOLOCH: дай пожалуйста ссылку на скачивание DLL под GL4Java, чтобы я смог демо просмотреть.
0
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 5
25.04.2011, 17:46 22
Не надо путать божий дар с яичницой.
JRE - это среда исполняющая java сlass'ы.
JDK - это набор инструментов для написания java кода и компиляции его в *.class'ы. Он включает в себя JRE, что бы полученный байткод мог быть выполнен.

В JRE содержатся базовые классы входящие в данную версию java.
Если ты используешь классы не входящие в JRE, они должны быть приложены к твоему апплету ввиде jar-архива. Клиент автоматически скачает эти jar себе (смотри описание тега applet).

Формат байткода для java1.1. отличается от байткода java2 (т.е. java1.2, 1.3, 1.4, 1.5).
Что бы скопилиорвать байткод в формате 1.1 нужно запускать компилятор с ключём -target1.1

Если твой апплет простая ерунда с прыгающими картинками - то пользуй флеш. Пусть люди скачивают FlashPlayer, его точно нет в комплекте с IE.

J D K 1.5 (1.4) занимет 50 МБ.(клиенту не нужен, включает JRE)

J R E 1.5 (1.4) занимает 14 МБ. (нужен клиенту)

JRE 1.3. - 7мб.
Где здесь 100мб которые должен скачать клиент для просмотра апплета?
Перл вас совсем испортил.

Размер на диске после установки естесвенно будет больше.

Функциональность java1.1 на порядки ниже функциональности java1.4 и совсем не идёт в сравнение с возможностями 1.5.

Что ещё не ясно?
0
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 128
25.04.2011, 18:23  [ТС] 23
Установленная J2RE1.4 весит 34МБ...
Значит MicrosoftJVM может видеть только то, что сделано в среде java1.1?
0
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 5
25.04.2011, 19:27 24
И что эти 34 мб ? Создут проблемы владельцам 100-го пентиума с винтом на 500мб ?

Что бы класс мог быть выполнен MS JVM,
1) он должен быть скомпилирован доисторической java'ой (версии 1.1), либо нормальной, но с ключём -target1.1
2) не должны использоваться классы появившиеся после версии 1.1.
Например, класс StringBuilder, regex'ы или swing и куча-куча другого. Если такое использование имеет место в консоли будет выкинуто сообщение об ошибке.

Посмотри описание тега аpplet или оbject на java.sun.com (официальный сайт java). Там написано как сделать так, что бы пользователю предлагали скачать jre нужной версии. 14мб для sun jre или 10мб MS JVM - не велика разница во времени скачивания, а вот преимуществ у sun больше. Начиная от поддержки большей функциональности и кончая скоростью работы.
0
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 128
26.04.2011, 10:04  [ТС] 25
Ну вот:простой апплет у меня запустился, а апплет с 3D графикой запускаться не хочет. Журнал java выдает следующее:

java.lang.NoClassDefFoundError: javax/media/j3d/Node
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

На домашнем компе в такой-же среде (J2RE)работает, а здесь нет.
0
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 5
26.04.2011, 19:50 26
Попробуй читать то, что тебе пишут в ответ.

Класс javax/media/j3d/Node не является частью стандартных библиотек java. Следовательно JRE не откуда взять этот класс и ты получаешь ошибку.

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

Если ты хочешь, что бы всё работало под MS JVM, то удостоверься, что не только твой код, но и сторонние библиотеки, которые ты используешь, соответствуют стандрату java1.1.
0
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 128
27.04.2011, 12:58  [ТС] 27
Благодаря форуму я начинаю понимать механизм работы JRE. Все правильно- в JRE должны присутствовать необходимые библиотеки. Но вот установил я для 3Д-апплетов пакет java3d-1_3_1-windows-i586-opengl-rt.exe в директорию по умолчанию, а они у меня все-равно не идут. 'Не найден класс javax/media/j3D/Node'. Как мне указать в теге апплет ссылку на библиотеки javax/media/j3D? Откуда их должен загружать клиентский броузер? С javasun? Или они могут находиться в jar-файле апплета? Но они много весят...
Если можно, то не нужно мордой в грязь.
0
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 128
27.04.2011, 18:17  [ТС] 28
Извиняюсь, запустился мой апплет после установки на компе java3D-библиотек! Только вот такой непонятный пока вопрос остается: для запуска моего апплета на клиентском броузере нужно предлагать ему загрузить JRE с библиотеками java3D c сайта javasun или есть способы загрузить ему нужные классы этих библиотек в jar-файле моего апплета?
0
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 5
27.04.2011, 21:06 29
http://java.sun.com/j2se/1.4.2/docs/index.html - общая информация о java.

там же находим описание тега applet:
http://java.sun.com/j2se/1.4.2/docs/guide/misc/applet.html

читаем:

CODEBASE = codebaseURL
This OPTIONAL attribute specifies the base URL of the applet--the directory that contains the applet's code. If this attribute is not specified, then the document's URL is used.

ARCHIVE = archiveList
This OPTIONAL attribute describes one or more archives containing classes and other resources that will be 'preloaded'. The classes are loaded using an instance of an AppletClassLoader with the given CODEBASE.
The archives in archiveList are separated by ','.

CODE = appletFile
This REQUIRED attribute gives the name of the file that contains the applet's compiled Applet subclass. This file is relative to the base URL of the applet. It cannot be absolute. One of CODE or OBJECT must be present. The value appletFile can be of the form classname.class or of the form packagename.classname.class.

коротко:

кодебейз - место расположение applet'a и архивов, которые ему нужны.

относительно него указывается code (например, my.package.MyApplet.class)

относительно него же указывается список jar'ов через зарятую.

при запуске applet'a сначала клиент скачивает то, что указано в archivе. После этого апплет получает возможность их использовать.
(Скачать и положить jars в папку jre - это не правильный путь.)
0
0 / 0 / 0
Регистрация: 31.01.2011
Сообщений: 128
28.04.2011, 14:19  [ТС] 30
Вот код HTML- файла из папки j3D/demo,при клике на этом файле клиент загружает себе J2RE с библиотеками java3D, после чего получает возможность просматривать 3Д-апплет:

<HTML>
<HEAD>
<TITLE>Hello, Universe!</TITLE>
</HEAD>
<BODY BGCOLOR='#000000'>
<!--'CONVERTED_APPLET'-->
<!-- CONVERTER VERSION 1.3 -->
<OBJECT classid='clsid:8AD9C840-044E-11D1-B3E9-00805F499D93'
WIDTH = 256 HEIGHT = 256 ALIGN = middle codebase='http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0'>
<PARAM NAME = CODE VALUE = 'HelloUniverse.class' >

<PARAM NAME='type' VALUE='application/x-java-applet;version=1.2.2'>
<PARAM NAME='scriptable' VALUE='false'>
<COMMENT>
<EMBED type='application/x-java-applet;version=1.2.2' CODE = 'HelloUniverse.class' WIDTH = 256 HEIGHT = 256 ALIGN = middle scriptable=false pluginspage='http://java.sun.com/products/plugin/1.3/plugin-install.html'><NOEMBED></COMMENT>
<blockquote>
<hr>
If you were using a Java-capable browser,
you would see Hello Universe! instead of this paragraph.
<hr>
</blockquote>
</NOEMBED></EMBED>
</OBJECT>

<!--
<APPLET CODE = 'HelloUniverse.class' WIDTH = 256 HEIGHT = 256 ALIGN = middle>
<blockquote>
<hr>
If you were using a Java-capable browser,
you would see Hello Universe! instead of this paragraph.
<hr>
</blockquote>

</APPLET>
-->
<!--'END_CONVERTED_APPLET'-->

</BODY>
</HTML>

Извините, что я такой тупой, но ответьте по возможности однозначно ('Да' или 'Нет') на следующий вопрос: если у клиента уже стоит J2RE, но без j3D-библиотек, то для того, чтобы он смог просмотреть мой апплет, ему нужно скачивать с сайта javasun все библиотеки j3D, или же я могу просто упаковать для него в свой jar- файл только классы j3D, используемые в моем апплете?
Другими словами: нужно ли мне создавать HTML-файл такого же содержания (см. выше)или хватит следующего:

<HTML>
<HEAD>
<TITLE>Hello, Universe!</TITLE>
</HEAD>
<BODY BGCOLOR='#000000'>
<applet align=middle archive='HelloUniverse.jar' code='HelloUniverse.class' width=256 height=256>
<blockquote>
<hr>
If you were using a Java-capable browser,
you would see Hello Universe! instead of this paragraph.
<hr>
</blockquote>
</applet>
</BODY>
</HTML>
0
LiEnn
29.09.2011, 13:54 31
Ответ на последний вопрос:
Для просмотра 3d апплетов у клиента ОБЯЗАТЕЛЬНО должен быть установлен J2RE и J3dRE.
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
18.10.2011, 02:18 32
Smalig, убери это, будь добр.
0
0 / 2 / 3
Регистрация: 27.03.2012
18.10.2011, 02:28 33
Цитата Сообщение от scroodge
Smalig, убери это, будь добр.
хорошие люди живут в нижнем новгороде
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
19.10.2011, 04:46 34
Если ты про модератора - то нет причин не согласиться
Smalig отмылиться можешь?
По осени командировка предполагается из солнечного Харькова в одну из новгородских контор, если ты, таки да - из Новгорода - мыльнись плиз . С нас - украинское пиво, при благоприятном раскладе, и всё такое Оффлайн тем и хорощ что пиво в нём оффлайновое
0
19.10.2011, 04:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2011, 04:46
Помогаю со студенческими работами здесь

Сделать размер ячеек независимым
У меня есть таблица, полями являются время\имя\сообщение, имя и сообщение пользователь вводит сам,...

Как сделать разрешение исполнения php файлов в директории?
Подскажите, как правильно написать правило в htaccess, чтобы в текущей директории исполнялись...

Как сделать "апплет в апплете"?
Возможно ли в апплет засунуть другой апплет? Если да, то как это сделать?

Как подключить к ноутбуку второй монитор, чтоб он был независимым от ноута
Добрый вечер, хочу подключить к ноутбуку второй монитор ,чтоб он был не зависимым от ноута, и можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru