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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Getting started... Слоны идут на север 
:(
    Опции темы
x77
Дата 17.4.2002, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: нет
Всего: 22



Итак. Абстрагируемся от всего, что я писал ранее (хотя как ты предполагаешь засунуть джавовский апплет на страничку и просмотреть её без запущенного httpd для меня загадка). Будем исходить из того, что есть линух RH 7.2 отконфигуррованный в качестве веб-сервера и на нём требуется уложить страничку с апплетом, отображающим "Hello, world!" для любого подключающегося клиента. Как проверить, стоит ли на машине компилятор java, как его настроить (и надо ли?) и как писать и компилировать программу?


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
BearBeer
Дата 17.4.2002, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Модератор
Сообщений: 902
Регистрация: 25.3.2002

Репутация: нет
Всего: 9



:)
Ок. Вечером распишу пордробно.
PM MAIL YIM   Вверх
x77
Дата 17.4.2002, 14:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ждём-с :)
  Вверх
x77
Дата 17.4.2002, 14:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Кстати, было бы неплохо убрать возможность незарегистрированным пользователям писать сообщения под никами зарегестрированных.
  Вверх
BearBeer
Дата 17.4.2002, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Модератор
Сообщений: 902
Регистрация: 25.3.2002

Репутация: нет
Всего: 9



Последнее сообсчение - в раздел обсуждения форума.

Кстати, ты наверное уже писал и у тебя не вышло?
если да - можеш рассказать об ошибках, чтоб я обратил на них внимание?

Сорьки, сежчас много внимания уделить не могу - на работе :)

Есче один ПС - я сразу не вьехал, что апплет пишеш :) В основном специализируюсь на приложениях - поетому и зациклился.
Вообсчем пиши - а "стулья" вечером...
:D  :D  :D
PM MAIL YIM   Вверх
x77
Дата 17.4.2002, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: нет
Всего: 22



Мне бы хотелось начинать с нуля, тем более, что с джавой я раньше вообще не работал. Но допустим, засунул я в редактор

Код

class HelloWorld {
 public static void main(String args[]) {
   System.out.println("Hello World!");
 }
}


сказал:
 javac HelloWorld.java
 chmod 755 HelowWorld.class

а дальше что? Как это запихать в страницу?


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
BearBeer
Дата 17.4.2002, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Модератор
Сообщений: 902
Регистрация: 25.3.2002

Репутация: нет
Всего: 9



Код

import java.applet.Applet;
import java.awt.Graphics;

public class HellOfWorld extends Applet {
   public void paint(Graphics g) {
       g.drawString("#### of world!", 50, 25);
   }


Так будет правильней. Обьясню.

Во первых 2 первых строки выполняют импорт необходимых библиотек для построения апплета (1) и подключения графических модулей Виндовс (2).

Далее обязательно надо давать определение extends. Это как в плюсах, что указать, что твой класс наследует, все свойства класса Апплет (я иногда буду писать по русски в понятных местах, так как долго переключаться на английский - что непонятно - пытай ;) ).

Идем дальше.
Каждый апплет должнен имплементировать один из методов (методов в Джаве называется то, что в С++ - функция, это так, на хлопский ум :) ):

init, start и paint

кроме того апплеты могут имплементировать: stop и destroy, когда происходит одно из событий типа закрытия браузера или перехода на другую страницу.
Конечно же любой другой метод тоже можно засунуть, но эти основные и обязательны.

Это для начала про код.
Теперь проанализируем твой. Чего не хватает?
Правильно - импорта библиотек.
Остальной код впринципе отражает Джава-приложение, а не Джава-апплет.

Обьявление стандартного класса, стандартной статической функции мейн,  с набором строковых аргументотв, котоорые будут считываться с клавиатуры при запуске из консоли как параметры класса. Необязательны.
Далее вывод текста осуществляется через консоль. System.out (System.in) - классы для работы с потоками ввода-вывода через сандартное устройство. Так же как в С++ cin и cout.

То есть. Твою программу можно запустить из консоли, добавив первой строкой, например:

import java.*;
Должноо работать.

Продолжнение следует...
PM MAIL YIM   Вверх
BearBeer
Дата 17.4.2002, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Модератор
Сообщений: 902
Регистрация: 25.3.2002

Репутация: нет
Всего: 9



Теперь отвечаю на второй вопрос:

Как это все удовольствие запихать в Веб-страницу?

Ну во-первых, надо скомпилировать.
javac HellOfWorld.java

У нас получился милый прекомпилированый файл с именем
HellOfWorld.class

Это байт-коды для виртуальной машины, которая установлена на системе, где будет запускаться апплет.
Тут я сделаю отсупление и кое-что обьясню (я планировал сделать это позже, но будет полезно и тут). Апплет запускается на стотроне клиента. Абсолютно не имеет значение на чем тот сидит: На виндах, Линуксе, Компаке или другой платформе. Если у него установлена виртуальная Джава машина - она сама переведет байт-коды класса в коды понятные даннойплатформе. Именно в применении этой машины и есть реализация мультиплатформенности Джава. Разработчик пишет один код, не думая о той платформе, где будет запускаться скомпилированный класс.
Это верно как для апплетов, так и для джава-приложений.

Вернемся теперь к нашему классу.
Чтоб поставить его в веб-страничку используется стандартный тег:
<APPLET>

Выглядеть это будет так:
Код

<HTML>
<HEAD>
<TITLE> A Simple Program </TITLE>
</HEAD>
<BODY>

Here is the output of my program:
<APPLET CODE="HellOfWorld.class" WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>

PM MAIL YIM   Вверх
BearBeer
Дата 17.4.2002, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Модератор
Сообщений: 902
Регистрация: 25.3.2002

Репутация: нет
Всего: 9



Вот спецификация тага апплет, хотя к этому еще рано, но скоре всего захочется поиграться:
Код

<APPLET CODE=AppletSubclass.class WIDTH=anInt HEIGHT=anInt>
<PARAM NAME=parameter1Name VALUE=aValue>
<PARAM NAME=parameter2Name VALUE=anotherValue>
</APPLET>


ПРимер использования:
Код

<APPLET CODE="Animator.class" WIDTH=460 HEIGHT=160>
<PARAM NAME="imageSource" VALUE="images/Beans">
<PARAM NAME="backgroundColor" VALUE="0xc0c0c0">
<PARAM NAME="endImage" VALUE=10>
<PARAM NAME="soundSource" VALUE="audio">
<PARAM NAME="soundtrack" VALUE="spacemusic.au">
<PARAM NAME="sounds"
   VALUE="1.au|2.au|3.au|4.au|5.au|6.au|7.au|8au|9.au|0.au">
<PARAM NAME="pause" VALUE=200>
. . .
</APPLET>



Это для того, чтоб была более понятна вся концепция реализации запуска апплета. Так как это не тема про ХТМЛ - то рассписывать не буду - будут вопросы - отвечу :)
PM MAIL YIM   Вверх
BearBeer
Дата 17.4.2002, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Модератор
Сообщений: 902
Регистрация: 25.3.2002

Репутация: нет
Всего: 9



Ну и пару замечаний.

Джава - мультиплатформена. Это значит, что любая документация по Джаве - действительна для разработчика под любой системой.

Далее, для того чтоб при компиляции, компилятор (калабурчик_с) находил все стандартные и подключаемые классы невредно прописать системную переменную CLASSPATH, uгде прописаны пути к каталогам, где лежат библиотечные файлы.

Удачи!!! Надеюсь, что теперь все получится.
PM MAIL YIM   Вверх
Fantasist
Дата 22.4.2002, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Помниться, я слышал, что существует java, как его... типа run-time компилятор, или in-place компиляция - типа компиляции в исполняемый файл данной платформы из байт-кода, при первом запуске этого байт-кода. Ну так как есть такая вэщь? Хотя для апплетов это все равно безполезно.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
BearBeer
Дата 22.4.2002, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Модератор
Сообщений: 902
Регистрация: 25.3.2002

Репутация: нет
Всего: 9



Имеется ввиду JVM?
Java Virtual Machine? Этот можуль встроен во все пакеты Джава и является что ли сердцем. И есть основное "изобретение". Вы компилируете Свой код в классы, далее эти классы запускаются уже на JVM. А уже само по себе Виртуальная машина - платформозависима. И уже она переводит класс - в исполняемый код для данной платформы.

Без нее класс просто не запустится.
PM MAIL YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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