15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
1
Programowanie w Java 2
Programowanie w Java przy użyciu JDK
Opis JDK firmy SUN
Koncepcja tworzenia i wykonania programu
Prosty kod źródłowy programu
Kompilacja
Wykonanie na VM
Dokumentowanie, debugowanie, użycie innych narzędzi JDK
Co to jest appet
Koncepcja tworzenia i wykonania appletu
Prosty kod źródłowy appletu
Kompilacja
Wywołanie z dokumentu HTML
JDK appletviewer
Dla Specjalizacji Systemy Informacyjne w
Gospodarce
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
2
Programowanie w Java przy
użyciu JDK
SUN JDK
Java Developers Kit jest podstawowy zestawem do
tworzenia aplikacji w Javie
Trochę prymitywny interfejs linii poleceń JDK jest
zwykle zastępowany przez graficzny IDE (n.p.
JBuilder, ForteforJava)
Na początku użyjemy JDK aby
Zaznajomić się z poszczególnymi krokami procesu
przetwarzania kodu źródłowego i wykonywania
programu na VM
Uniknąć konieczności analizowania bardziej
skomplikowanego kodu Java niezbędnego dla
najprostszej aplikacji generowanej w IDE
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
3
SUN JDK
Bezpłatnie dostępna implementacja Java VM,
kompilatora, narzędzi, i bibliotek API
(Application Programing Interface) dostępna
dla wielu systemów i procesorów na stronach
firmy SUN Microsystems
http://
http://java.sun.com
Dostarczana jest także z JBuilder IDE
JBuilder5/jdk.1.3.1 i ta wersja jest zainstalowa na
komputerach
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
4
Składniki JDK
Javac
Java
Appletviewer
Javadoc
Jdb
Javah
javap
Kompilator
Interpretator maszyny wirtualnej
Wykonuje bytecody z plików klas
(.class)
Interpretator maszyny wirtualnej dla
apletów
Wykonuje bytecody z plików klas
zawartych w dokumentach HTML
Narzędzie do tworzenia dokumentacji
w html z plików kodu
Debuger
Narzędzie do generowanie interfajsów
umożliwiających wołanie procedur
javy z kodu napisanego w C
Dissasembler – narzędzie pozwalające
prezentować programiście znaczenie
bytecodes (używane do znajdowania
niektórych typów błędów)
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
5
Proces powstawania
programu Java i
wykonywania na VM
Kroki
Pisanie
programu
Kompilacja
Wykonanie
na Virtualnej
Maszynie
Edytor Tekstu
Kod w Java
Text file (*.java)
javadoc
javac
Kod dla VM
Java class files (*.class)
java
Output
programu
javah
Plik (Header files)
nadłówka dla C/C++
Dokumentacja
HTML
Kompilacja
Pisanie
programu
Wykonanie
na Virtualnej
Maszynie
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
6
Najprostszy program
Kod w pliku
TestDrive.java
/** Najprostszy Java program */
public class TestDrive {
/* main jest główną funkcją programu */
public static void main(String[] argv) {
System.out.println("JDK Test Drive!");
// Wyświetla tekst w terminalu
}
}
Kompilacja
javac TestDrive.java
( pod windows „C:\Program Files\JBuilder6\jdk1.3.1\bin\javac”
TestDrive.java )
lub
javac –verbose TestDrive.java
Rezultat
Kody dla java VM w pliku
TestDrive.class
Analogie i różnice z
Pascalem
{ -> begin
} -> end
Typ zmienna -> zmienna: typ
Void oznacza funkcję nie
zwracającą wyniku ->
procedure w Pascalu
Static oznacza funkcję
globalną
Main zastrzeżona nazwa
funkcji od której rozpoczyna
się program
String[] -> open array of
string w Pascalu
Argv zawiera argumenty z linii
poleceń
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
7
Wykonanie programu i
działanie narzędzi
Wykonanie
java TestDrive
( pod windows „C:\Program Files\JBuilder6\jdk1.3.1\bin\java” –cp
„C:\Moje dokumenty\Lectures\Java\Lecture2\example1;”
TestDrive
Opcjonalny średnik ; oddziela gdy więcej ścieżek )
lub
java –prof TestDrive
Dokumentacja
javadoc TestDrive.java
Przykład komentarzy w kodzie
/** dokumentacja */
// nie do dokumentacji
/* też nie do dokumentacji */
Inne
Javah TestDrive
Javap TestDrive
Java musi być w ścieżce lub
należy podać n.p.
c:/jdk1.3.1./java
Można też podać ścieżkę do
pliku z bytecodes ale nie
rozszerzenie .class
Javadoc generuje
dokumentacje
AllNames.html
Tree.html
Packages.html
TestDrive.html
....
Komentarze zaczynające się
od /** są włączane do
dokumentacji
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
8
Proces powstawania
appletu Java i
uruchamiania w
przeglądarce
Kroki
Pisanie appletu
Kompilacja
Pisanie dokumentu HTML
zawierającego odwołanie do
appletu
Definiującego „okienko” dla
appletu w oknie dokumentu
Wykonanie na Virtualnej
Maszynie Przeglądarki
WWW
Sam applet bez dokumentu
można obejrzeć przy
pomocy narzędzia
appletviewer
Edytor Tekstu
Kod w Java
Text file (*.java)
javadoc
javac
Kod dla VM
Java class files (*.class)
Przegl
ą darka
z
Java VM
HTML Dokument
z appletem
javah
Plik (Header files)
nadłówka dla C/C++
Dokumentacja
HTML
Kompilacja
Pisanie
programu
Edytor Tekstu
HTML
dokument
Text file (*.html)
appletviewer
Output
appletu
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
9
Wywołanie Appletu z
dokumentu HTML
Java VM wbudowane w
przeglądarki umożliwia
automatyczne pobieranie z
internetu specjalnych
graficznych programów Java
(appletów) i bezpieczne ich
wykonywanie
Sposób Zapisu w kodzie HTML
odwołań jest podobny do
zapisu innych odwołań (links)
<A HREF=
com”>
Link do strony Javy</A>
<APPLET CODE=„Clock.class”
WIDTH=200 HEIGHT=100>Tu
będzie Applet Zegarka</APPLET>
Dodatkowo Applety mogą
pobierać z dokumentu HTML
parametry określające sposób
działania appletu
<APPLET CODE=„Clock.class”
WIDTH=200 HEIGHT=100>Tu
będzie Applet Zegarka
<PARAM NAME=color
VALUE=„blue”>
Wyświetl zegarek z niebieskim
tłem</APPLET>
Przeglądarka z Java VM ignoruje
wszystko inne niż <PARAM ...>
pomiędzy znacznikami
<APPLET...> ...a </Applet>
Przeglądarka bez Java VM ignoruje
<APPLET..> i <PARAM ..> a
wyświetla wszystko inne
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
10
Kroki związane z
uruchomieniem Appletu
1.
Przeglądarka rezerwuje „okienko” w oknie dokumencie
rozmiar podany przez parametry WIDTH i HEIGHT)
2.
Pobiera parametry z dokumentu HTML
Przetworzenie danych w <PARAM ...>
3.
Zostaje uruchomiona Java VM i applet zostaje pobrany z dysku lub z sieci
4.
Kod Appletu zostaje załadowany z pliku z rozszerzeniem .class, sprawdzony, i
uruchomiony
5.
Procedura Appletu init zostaje wykonana (tylko raz)
6.
Procedura Appletu start zostaje wykonana
Procedura start zostaje wykonana przy każdym „powrocie” użytkownika d dokumentu
HTML
7.
Wykonanie procedury paint powoduje wyświetlenie okna appletu
Procedura paint jest wywoływana często n.p. Przy skrolowaniu okna
8.
Procedura stop jest wołana gdy użytkownik przechodzi do innego dokumentu
N.p. Powoduje zatrzymanie zegara w oknie appletu, zostaje on ponownie uruchomiony
przez procedurę start
9.
Procedura destroy jest wykonywana gdy dokument zostaje zamknięty i Applet
jest usuwany z pamięci
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
11
Różnice i podobieństwa
Appletu i programu Java
Program
Grafika
opcja
Ładowanie
Wywołanie z linii komend lub
skryptu
Z pliku lokalnego
przez system operacyjny
Dane
Z linii komend
Wymagane składniki
Procedura main
Applet
Grafika
Wymagana
Ładowanie
Link w dokumencie HTML
Protokół Http
dysku lokalnego lub z internetu
Niezależne od systemu
operacyjnego
Dane
Z parametrów zapisanych w
dokumencie HTML
Wymagane składniki
Procedura init
Start
paint
Stop
destroy
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
12
Prosty kod HTML
„wywołujący” applet
HTML dokument
<HTML>
<HEAD>
<TITLE>Example of simple HTML document with applet
link</TITLE>
</HEAD>
<BODY>
<H1>Example of HTML document with applet</H1>
<p>
<APPLET CODE="FliledBox.class" WIDTH=200
HEIGHT=100>
<p>Here applet should be dispayed</p>
<PARAM NAME=color VALUE="blue">
<p>Applet color parameters can be "blue", "red" or,
"green"</p>
</APPLET>
</BODY>
</HTML>
Opis elementów
<HTML> informacja o typie dokumentu
<HEAD> informacja o dokumencie dla
przglądarki, wyszukiwarki, i.t.p.
<BODY> informacja do wyświetlenia
<H1>Tytuł głównej częsci
<p>akapit
<APPLET ... Początek sekcji appletu
<APPLET
CODE=„http://www.server.com/d1/Applet
FileName.class” definicja linku do
appletu (może być plik lokalny, jeśli w tej
samej kartotece co httml dokument to
wystarczy nazwa pliku z appletem)
<APPLET
CODE”LokalExamleApplet.class”
WIDTH=100 HEIGHT=50> zdefiniowanie
rozmiarów „okienka” zarezerwowanego
dla appletu w oknie dokumentu
<PARAM... >Sekcja definiująca
parametry appletu
</APPLET> koniec sekcji appletu
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
13
Przykład prostego appletu
Kod appletu
import java.awt.*;
import java.applet.Applet;
/** FilledBox displays a filled, colored box in the browser window.
*/
public class FilledBox extends Applet {
// This variable stores the color specified in the HTML document
Color boxColor;
/** Get the box color from the host HTML file.
*/
public void init() {
String s;
s = getParameter("color");
// the default color is gray
boxColor = Color.gray;
// we expect a parameter called color which will have
// the value red, white or blue
if (s.equals("red")) boxColor = Color.red;
if (s.equals("green")) boxColor = Color.green;
if (s.equals("blue")) boxColor = Color.blue;
}
/** Paint the box in region assigned to the applet.
Use the color specified in the HTML document.
*/
public void paint(Graphics g) {
g.setColor(boxColor);
g.fillRect(0, 0, size().width, size().height);
}
}
Opis
Import ...
Dołącza moduły do wyświetlenia grafiki
odpowiednik instrukcji uses w Delphi
public class FilledBox extends Applet {
Definiuje klasę FilledBox jako dziedziczoną z
klasy Applet (uniwersalnego wzorca appletu)
Color boxColor;
Zmienna typu Color
W Java typ piszemy przed nazwa zmiennej –
odwrotnie niż w Pascalu
Public void init()
Procedura bez argumentów
Może być wołana przez wszystkich
Jest wołana tylko raz przez przeglądarkę po
załadowaniu appletu
public void paint(Graphics g)
Procedura wołana przez przeglądarkę aby wyświetlić
obrazek applety
Wołana wielokrotnie n.p. Podczas skrolowania
dokumentu
Argumentem jest obiekt g typu Graphics zarządzający
oknem dokumentu
Metody obiektu typu Graphics użyte do wyświetlenia
kolorowego prostokąta
{ g.setColor(boxColor);
g.fillRect(0, 0, size().width, size().height);
}
{ begin,
} end
15/02/02
Programowanie Java 2 Copyri
ght Marek A. Chmielowski
14
Kompilacja appletu i
dystrybucja
Applet kompilujemu tak jak każdy program n.p.
Javac FilledBoc.java
Wynikiem jest plik FilledBox.class
Uruchomienie Appletu wymaga dokumentu HTML
określającego link do appletu, rozmiar „okienka” appletu, i
ewentualnie definiującego parametry
Applet można uruchomić otwierając taki dokument w
przeglądarce implementującej Java VM
Applet można „obejrzeć” przy pomocy narzędzia SDK
appletviewer n.p.
appletviewer SimpleDocWithApplet.html
Jeśli chcemy „obejrzeć” sam applet to też musimy mieć HTML
dokument (n.p. Po to aby zdefiniować „okienko”)
Appletviewer ignoruje dane html z dokumentu i wyświetla tylko
applet