Ćwiczenie 1 Przygotowanie środowiska JAVA Ustawianie
Transkrypt
Ćwiczenie 1 Przygotowanie środowiska JAVA Ustawianie
Przetwarzanie równoległe i rozproszone – ćwiczenie 1 Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŜy skonfigurować środowisko. Ustawianie zmiennych systemowych dla JDK W Windows 9x, ustawiamy zmienne systemowe przez zmodyfikowanie pliku autoexec.bat, zlokalizowanym na dysku twardym w katalogu głównym . Plik ten jest wykonywany podczas startu systemu. Po zmodyfikowaniu pliku, aby zmiany odniosły skutek, naleŜy uruchomić go ponownie. Modyfikacja autoexec.bat Musisz otworzyć plik do edycji w edytorze tekstowym (np. notepad) i dodać ścieŜkę do katalogu /bin/ znajdującego się w katalogu, gdzie zainstalowałeś JDK. Np. jeŜeli zainstalowałeś JDK w katalogu c:\jdk1.3\, powinieneś dodać do pliku autoexec.bat linie, aby nie zamazać wcześniejszych wpisów stosujemy %: set path=%path%;c:\jdk1.3\bin\ Następnie musisz zdefiniować classpath tak, aby zawierał aktualny katalog. Classpath pomaga JDK zlokalizować klasy Java zainstalowane na komputerze. Niektóre wersje JDK i narzędzia dostarczane z JDK nie wymagają tego, jednak zaleca się zdefiniowanie tej ścieŜki w następujący sposób: set classpath=%classpath%;.\ Teraz moŜna rozpocząć pisanie programu. W Windows NT, 2000 zmienne path i classpath naleŜy dodać inaczej. Otwieramy Panel Sterowania (Control Panel), System i później wybieramy Environment Variabes, gdzie WS_v1.2 1 Przetwarzanie równoległe i rozproszone – ćwiczenie 1 dodajemy nasze ścieŜki do juŜ istniejących zmiennych (Path i Classpath), lub tworzymy nowe zmienne systemowe Path i Classpath z naszymi ścieŜkami. Narzędzia JDK Podstawowe narzędzia Java Development Kit. Pozwalają tworzyć aplikacje. javac- kompilator Java. Tworzy kod pośredni (bytecode) java- interpreter Java - wykonuje skompilowane programy w Javie (zapisane juŜ w bytecode) appletviewer- jest bardzo przydatnym narzędziem pozwalającym wykonywać i debagować applety Java bez uŜycia przeglądarki. javadoc- tworzy dokumentacje API (w HTML), pobierając komentarze z kodu źródłowego jdb- narzędzie debagujace Javy javap- dekompilator Java jar - tworzy pliki JAR (Java Archive). Kompresuje klasy i tworzy jeden plik jar. Przygotowanie i kompilacja programu Program przygotowujemy w dowolnym edytorze tekstowym – plik źródłowy ma rozszerzenie .java. Kompilacji dokonujemy przy pomocy polecenia: javac nazwa_pliku_źródłowegi.java W wyniku wykonania tego polecenia powstanie plik z rozszerzeniem .class, który jest plikiem zapisanym w kodzie pośrednim (bytecode)przeznaczonym do uruchomienia w wirtualnej maszynie javy. Wszyskie te operacje kompilacja i uruchomienie programu wykonujemy z linii poleceń w okienku dosowym (win9x, win2k, Win_XP). Uruchomienie skompilowanego programu Powstały w wyniku kompilacji plik przeznaczony jest do uruchomienia w JVM (Wirtualna Maszyba Javy). Wykonujemy to przy pomocy polecenia w okienku dosowym: java nazwa_pliku_skompilowanego Program powinien zadziałać i w zaleŜności od jego funkcji powinien zaprezentować jakieś wyniki. WS_v1.2 2 Przetwarzanie równoległe i rozproszone – ćwiczenie 1 2. Część praktyczna I. Przykłady prostych programów NaleŜy wprowadzić, skompilować i uruchomić poniŜsze programy. Dokonać zmian w tych programach aby wypisywane przez nie komunikaty były w języku polskim. Przykład 1 W pliku o nazwie HelloWorld.java naleŜy wpisać poniŜszy kod, skompilować ten plik i uruchomić w JVM. class HelloWorld { public static void main(String args[]) { System.out.println("Hello World"); } } Przy kompilacji i uruchamianiu programu waŜne jest zwracanie uwagi na duŜe litery. W wyniku wykonania programu powinien pojawić się komunikat: Hello World . Przykład 2 W pliku o nazwie ArithmeticTest.java naleŜy wpisać poniŜszy kod, skompilować ten plik i uruchomić w JVM. class ArithmeticTest { public static void main (String[] args) { short x = 6; int y = 4; float a = 12.5f; float b = 7f; System.out.println("x rowna sie " + x + ", y rowna sie " + y); System.out.println("x + y = " + (x + y)); WS_v1.2 3 Przetwarzanie równoległe i rozproszone – ćwiczenie 1 System.out.println("x - y = " + (x - y)); System.out.println("x / y = " + (x / y)); System.out.println("x % y = " + (x % y)); System.out.println("a rowna sie " + a + ", b rowna sie " + b); System.out.println("a / b = " + (a / b)); } } Przykład 3 W pliku o nazwie PrePostFixTest.java naleŜy wpisać poniŜszy kod, skompilować ten plik i uruchomić w JVM. class PrePostFixTest { public static void main (String args[]) { int x = 0; int y = 0; System.out.println("x i y wynosza " + x + " i " + y ); x++; System.out.println("x++ daje w wyniku " + x); ++x; System.out.println("++x daje w wyniku " + x); System.out.println("Ustawiamy x na 0."); x = 0; WS_v1.2 4 Przetwarzanie równoległe i rozproszone – ćwiczenie 1 System.out.println("------"); y = x++; System.out.println("y = x++ (postikementacja) daje w wyniku:"); System.out.println("x wynosi " + x); System.out.println("y wynosi " + y); System.out.println("------"); y = ++x; System.out.println("y = ++x (preinkrementacja) daje w wyniku:"); System.out.println("x wynosi " + x); System.out.println("y wynosi " + y); System.out.println("------"); } } II. Test poleceń wymienionych w punkcie „Narzędzia JDK” NaleŜy uruchomić te polecenia, zapoznać się z opcjami, kaŜde z nich przetestować. III. Zadanie do realizacji Przygotować program który wykona binaryzację obrazy zasymulowanego w postaci tablicy dwuwymiarowej 20x20 typu int. Wartości w tablicy początkowo będą przypadkowe w zakresie od 0 do 255. Pierwsza wersja programu powinna być przygotowana w postaci jednej klasy. Druga wersja w postaci dwu klas, jedna przetwarzająca dane, która będzie zawierać konstruktor inicjujący tablicę danymi przypadkowymi, metodę do binaryzacji i wypisania danych. Druga klasa będzie klasą główną, która będzie zawierać wywołanie wcześniej zdefiniowanych elementów. Uwagi: WS_v1.2 5 Przetwarzanie równoległe i rozproszone – ćwiczenie 1 1. Deklaracja tablicy dwuwymiarowej 20x20: int [][] obraz = new int [20[20]; 2. generowanie liczb pseudolosowych z zakresu od 0 do 255: obraz[i][j] = (int)(Math.random()*255); 3. Binaryzacja int p=100;//Próg binaryzacji if ( obraz[i][j] < p) obraz[i][j]=0; else obraz[i][j]=255; 4. Wyprowadzenie wyników System.out.println(„Wynik”+obraz[i][j]); 3. Podsumowanie NaleŜy przygotować sprawozdanie z wykonania powyŜszych programów i testów środowiska JDK 4. Literatura - WS_v1.2 Barry Boone, „JAVA dla programistów C i C++” Materiały z wykładu 6