Kurs Java Podstawy - rozszerzony

Eclipse IDE - pierwszy projekt

 

Wiemy już co nieco o eclipse jako IDE. Teraz warto by przejść do sedna, czyli tworzenia projektów Java w tym środowisku. Jak się za chwilę przekonamy, tworzenie prostej aplikacji (na początek będzie to zwykłe HelloWorld) w zasadzie nie różni się od tego, które napisaliśmy w pierwszej lekcji kursu w notatniku. Przy rozbudowanych programach zalety jednak tylko się mnożą, a obsługa klas staje się bez porównania wygodniejsza.

Eclipse dostarcza nam wiele gotowych szablonów, które sformatują za nas kod, pozwolą wygenerować dokumentację na podstawie komentarzy i ułatwią pracę z wieloma projektami.

Przejdźmy do rzeczy. Uruchom środowisko eclipse i poczekaj aż się załaduje, gdy to nastąpi, przejdź kolejno do File -> New -> JavaProject. W ten sposób otworzymy okno tworzenia nowego projektu Java.

Widzimy tu charakterystyczne pola:

  • Project name - czyli nazwa naszego projektu, będzie on reprezentowany jako folder w naszym katalogu workspace (można zmienić ścieżkę odznaczając opcję Use default location)
  • JRE - wybór środowiska, w którym chcemy stworzyć projekt. Domyślnie powinna to być najnowsza stabilna wersja Javy, czyli obecnie 6, jednak przykładowo pisząc aplikację w MHP (media home platform) należałoby wybrać tu niższą wersję, aby zabezpieczyć się przed wykorzystaniem nieistniejących tam bibliotek (jak np Collections Framework).
  • Project layout - pozwala określić schemat naszego projektu. Domyślnie (i zalecam tak to pozostawić) pliki z kodem źródłowym (rozszerzeniem .java) będą przechowywane w folderze /src, natomiast bliki skompilowane ( z rozszerzeniem .class) w folderze /bin.
  • Working sets nie powinno nas zbytnio obchodzić.
  • Jeśli wciśniemy przycisk Next, to zobaczymy kilka dodatkowych zakładek z opcjami, takimi jak wybór folderu z plikami źródłowymi, dodanie dodatkowych bibliotek do projektu.

 

Nazwijmy nasz nowy projekt Hello i nie zmieniając pozostałych opcji wciśnijmy Finish.

W zakładce Package Explorer powinien się teraz ukazać folder naszego projektu. Można go rozwinąć i zobaczyć, że faktycznie jest tam folder /src.

Czas utworzyć pierwszą klasę. Kliknij prawym na utworzonym przed chwilą projekcie i wybierz opcję New -> Class (możesz to także zrobić z paska menu znaczek C+).

Do wyboru mamy tutaj kolejno:

  • Source folder (folder z plikami kodów źródłowych), nie powinniśmy go zmieniać.
  • Package - jest to pole wskazujące, czy nasza klasa ma zostać umieszczona w jakimś pakiecie. Są to "paczki" przechowujące klasy o podobnym znaczeniu i przeznaczeniu, pomagają w łatwiejszej organizacji plików. Odradzane jest używanie domyślnego pakietu, aczkolwiek, przy małych programach nie ma to znaczenia. Konwencja nazewnictwa mówi o tym, żeby pakiety nazywać wg schematu: odwrócona_nazwa_domeny.nazwa_pakietu. Wpiszmy tam nazwę jak na obrazku obok, aby zobaczyć tego działanie.
  • W pole Name wpisujemy oczywiście nazwę naszej klasy (wg konwencji nazewnictwa z wielkiej litery), jak wiemy, będzie to jednocześnie nazwa naszego pliku .java
  • Określamy modyfikator dostępu (ponieważ nie jest to klasa wewnętrzna, możemy nadać jej jedynie specyfikator publiczny, lub domyślny - czyli jego brak), oraz atrybuty abstract, lub final
  • Superclass określa "nadklasę", czyli klasę, z której dziedziczymy, domyślnie jest to klasa Object, na razie tak to zostawmy.
  • Interfaces - pozwala wybrać interfejsy, które chcemy implementować, może pozostać puste.
  • Eclipse pozwala automatycznie wygenerować częściowy szkielet klasy, w tym celu należy zaznaczyć interesujące nas opcje. Domyślnie jest to Inherited abstract methods - generuje puste metody na podstawie interfejsów, u nas nie spowoduje żadnego działania. Zaznaczmy jednak dodatkowo opcję public static void main(String[] args). Jak nietrudno się domyślić spowoduje to utworzenie metody main, od której rozpoczyna się wykonywanie każdego programu w Javie.
  • Wciśnijmy Finish. Naszym oczom powinien ukazać się kod klasy.

W pustej metodzie main() dopiszmy linijkę, odpowiadającą za wyświetlenie tekstu "Hello World" i uruchommy naszą aplikację przyciskiem strzałka z górnego menu. Jeśli nie zapisaliśmy pliku, eclipse powinien nas o to zapytać, oczywiście w takim wypadku klikami OK. Działanie powinno być takie jak na poniższym screenie, powinna się pokazać konsola i wyświetlić nasz tekst.

<- Poprzednia LekcjaNastępna Lekcja ->

Komentarze

Marcin

szkoda że nie można przechodzić miedzy stronami kursu za pomocą czego w stylu przycisku "przejdz do następnego zagadnienia"

Slawek

da się zrobić :) W weekend, albo w przyszłym tygodniu po środzie to dorobię.

Piotrek

U mnie to troszkę inaczej wygląda bo jest tak

package pl.javastart.first;

public class HelloWorld {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

}

}

nie ma System.out.println("HelloWorld")

i nie wiem dlaczego

olum

Nie przeczytałeś dokładnie. Tą linijkę musisz sam napisać.

Koza

Piotrek raczej pytał o to, czemu w świeżo wygenerowanym szablonie nie znajduje się System.out.println(„HelloWorld”);

Ta linijka nie zawiera się w szablonie, autor tutoriala dopisał ją własnoręcznie :)

Aquilifer

@Piotrek
równie dobrze możesz napisać ten program w taki sposób:

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

Marta

Witam
Mam problem już na etapie tworzenia projektu Hello.
Wyskakuje mi błąd:

Description Resource Path Location Type
Unbound classpath container: 'JRE System Library [JavaSE-1.6]' in project 'Hello' Hello Build path Build Path Problem


I nie wiem jak go zinterpretować oraz naprawić.
Z góry dziękuję za pomoc i pozdrawiam

Marta

Edit. Weszłam w Eclipse w ustawienia bibliotek, poklikałam jakieś "edit path" i za dziesiątym razem zadziałało :) Niestety nie jestem w stanie tego odtworzyć, więc byłabym mimo wszystko wdzięczna za wyjaśnienia co się działo i jak na przyszłość ustawić dostęp do bibliotek poprawnie.

Witek

Witam
Ja to zrobiłem u siebie tak: . - nie robię pakietów(package) bo na tym etapie to mija się z celem( owszem można to przećwiczyć). Po uruchomieniu Eclipse z File wybieram Java Project, a w polu Project name wpisuje np.: Lekcja_7 , gdzie trzymam pliki, które związane są z tą lekcją. Ps. Nie miałem jeszcze takiego przypadku z ustawieniem bibliotek w Eclipsie. Po rozpakowaniu i podaniu nazwy workspace, to było wszystko co robiłem jeśli chodzi o Eclipse
Działa to bez żadnych prblemów.

Bartek

Mam tablice dwuwymiarową stringów i chcę porównać wartości ze stringiem pobranym od użytkownika za pomocą Scanner. Jeśli oba stringi są takie same to program ma wyświetlić odpowiedni string ale z drugiego wiersza. Niestety nie dostaje nic. A po dodaniu pętli która wyświetli otrzymuje:
[Ljava.lang.String;@1b67f74
[Ljava.lang.String;@69b332
Co to jest? O co chodzi?

Slawek

Bez kodu ciężko będzie pomóc, ale na 90% wyświetlasz tablicę, a nie jej element. Mniej więcej:
String[] tablica = {"Kaziu", "Boniek"};
System.out.print(tablica);

a powinno być

System.out.print(tablica[0]);

Maestro

Jak otworzyć okienko Console w tym programie ?

Witek

Witam
Aby otworzyć konsole to możesz skorzystać z kombinacji: Alt + Shift + Q + C
lub Window -> Show Viev -> Console

Bartosz

Nie wiem dlaczego nie mam Consoli

Witek

Witam
Pewnie jest wyłączona, konsole włącza się tak jak podałem w poprzednim poście oczywiście w Eclips'e.
Pozdrawiam

Akir

Po zainstalowaniu Eclipse działa to co napiszę w nim, ale nie działa zwykła Java , to znaczy sypie błędami. Też tak macie?

Problem

Kolejny problem D;.Mój wspaniały kod:
package pl.javastart.first;

public class Witus {
public static void main(String[] args) {
System.out.print ("Hello World");
System.out.println ("Costam jeszcze");
}

}
"Costam jeszcze" jest w tej samej linii co Hello World...

Witek

Witam
Możesz napisać tak System.out.print(" Hello World \n"); gdzie \n to nowa linia
lub
System.out.println(" Hello World ");
Pozdrawiam

luke

Wszystko zrobilem jak wyzej ale zamiast napisu hello world wyswietla sie :" could not find or load main class" ktos wie o co kaman ? na google niestety za duzo sie nie dowiedzialem..

Sławek Ludwiczak

Podejrzewam, że zrobiłeś literówkę w nazwie metody main. Jeśli jednak wygenerowałeś to z automatu to spróbuj kliknąć prawym na nazwie projektu (po lewej stronie w package explorerze), wybierz opcję Run as - > Java Application.
Problem polega na tym, że eclipse, nie może odnaleźć klasy z metodą main - co jest dziwne jeśli zrobiłeś wszystko jak w przykładzie.

Tomek

Ej, słuchajcie, mam problem... Robię class, to ok, ale potem jak wpisuję System.out.println ("Hello World") to mi te ) podkreśla na czerwono i nie chce potem działać... Pomóżcie!

Andy

w jaki inny sposób można wyświetlić na ekranie, nie używając tego System.out.print(ln)()??

Dzikus

Co autor miał na myśli pisząc że konwencja nazewnictwa mówi, żeby pakiety nazywać wg schematu: "odwrócona_nazwa_domeny.nazwa_pakietu" ? Jakiej domeny?

Marcin Kunert

Przykładowa domena: marcin.javastart.pl
Nazwa pakietu: gra
Daje: pl.javastart.marcin.gra

Rosol

Szukam osoby ktora pomoze mi ogarnac eclipse i jave jestem w stanie zaplacic ! prosze o kontakt mailowy

Sebastian

mam pytanie niezwiązane z waszymi
Gdy tworzymy np. program w eclipse to jakimi kodami dodać by aplikacja była hmm... wirtualnym albumem
w których były by zdjęcia i na dole strzałki do zmienieniania ich? Chodzi mi o dodanie zdjęcia do JFrame

Win

Witam!
Wszystko działa jak należy,
tylko nie mam w tym programie tej zakładki "Console"
Jak ją uruchomić?

Marcin

Witam mam małe pytanie czy można nauczyć się z internetu tworzenia modyfikacji do gier (pluginy do minecrafta)

mwarw

Osobiście też zacząłem ten kurs ze względu na minecrafta (dokładnie bukkita) i powiem,że najpierw lepiej jest się wyuczyć ogólnie javy, a potem robienia pluginów.

mwarw

Mi przy rozpakokywaniu ukazuje się coś takiego: http://imgur.com/lTptQos
a potem z programem są różne cyrki (raz mi się włączyć nie chciał, a raz nie chciał stworzyć nowego pliku. :( )

Robert

Takie pytanko:
Dlaczego Eclipse robi mi po skompilowaniu 2 pliki .class, ale tylko te w których jest metoda main.
Na przykład, z klasy Test mam: Test1.class i Test$1.class
Pozdrawiam

Sławek Ludwiczak

Drugi .class jest tworzony, ponieważ utworzyłeś wewnątrz dodatkową klasę wewnętrzną, która najwidoczniej nazywa się 1.

kylu38

Mi niestety wyskoczyło coś takiego;
-javaagent:[=]
load Java programming language agent, see java.lang.instrument
-splash:
show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.

co mam z tym zrobić

kylu38

Już jest ok.
Zainstalowałem w innej lokalizacji, wypakowałem i postępowałem zgodnie z instrukcjami:)

Patryk

blik jest błąd

Lkop

ale głupie gdy wpisuje pl.javastart.first to niemoge nacisnąć finish

Ania

wie ktoś jak się zabrać do iloczynu skalarnego wektorów zespolonych, gdzie należy potraktować wektory zespolone jako tablice o wymiarach nx2. Działania:
c[i][1]=a[i][1]*b[i][1]- a[i][2]*b[i][2]
c[i][2]=a[i][1]*b[i][2]+a[i][2]*b[i][1]
Zespolony iloczyn skalarny to tablica dwuelementowa:
s[1]=s[1]+c[i][1]
s[2]=s[2]+c[i][2]
?? Jestem początkująca, a muszę coś takiego zrobić w eclipse :(

Gosia

Wydaje mi sie, że wszystko zrobiłam jak należy, wg instrukcji. Jednak kiedy chce uruchomić program wyskakuje mi taki oto komunikat: A Java "Exception has occurred." Czy ktoś mi może pomóc i wyjaśnić co zrobiłam źle?

lolo

Nie wiem jak to jest w Eclipse ale zobacz czy niema jakiś globalnych ustawień JDK (jak w IntelliJ) i tam zmień ścieżkę do Javy 7. Ewentualnie spróbuj zmienić Class patch na wskazujące na jave 7

kris

jak zmienic:
use an execution enviroment JAVA SE 1.6 żeby było na 1.7??

Bo niektóre rzeczy nie działają na 6 a co bym w eclipsie nie podpiął to i tak nie widzi wersji nowszej

lolo

Nie wiem jak to jest w Eclipse ale zobacz czy niema jakiś globalnych ustawień JDK (jak w IntelliJ) i tam zmień ścieżkę do Javy 7. Ewentualnie spróbuj zmienić Class patch na wskazujące na jave 7