Eclipse IDE - pierwszy projekt
Stwórzmy pierwszy projekt z wykorzystaniem środowiska eclipse. Na początek będzie to najpopularniejszy przykład "Hello World", czyli "Witaj Świecie", który zazwyczaj zapisuje każda osoba rozpoczynająca swoją przygodę z programowaniem.
Eclipse dostarcza nam wiele gotowych szablonów, pozwala automatycznie formatować kod, pozwola 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 -> Java Project. 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 (Java Runtime Environment) - wybór środowiska / wersji Javy, w której chcemy stworzyć projekt. Domyślnie powinna to być najnowsza stabilna wersja Javy, 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 pliki 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. Wszystko może pozostać bez zmian.
- Nazwijmy nasz nowy projekt Hello i nie zmieniając pozostałych opcji wciśnijmy Finish.
Jeśli korzystasz z Javy 10 lub nowszej to odznacz opcję Create module-info.java na drugim ekranie konfiguracji. Moduły zostały wprowadzone w Javie 9, jednak w prostych aplikacjach wprowadzałyby dla nas tylko niepotrzebne komplikacje.
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 foldery przechowujące klasy o podobnym 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_autora.nazwa_pakietu . Wpiszmy tam nazwę jak na zrzucie ekranu, w wyniku na dysku powstanie folder pl/javastart/first w katalogu src.
- W pole Name wpisujemy nazwę naszej klasy (wg konwencji nazewnictwa z wielkiej litery), jak wiemy, będzie to jednocześnie nazwa naszego pliku .java
- W sekcji Modifiers 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 to "klasa nadrzędna", czyli taka, 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 będzie 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.
Wiele z wyżej wymienionych elementów może Ci niewiele mówić - nie przejmuj się tym na tym etapie.
W pustej metodzie main() dopiszmy linijkę, odpowiadającą za wyświetlenie tekstu "Hello World" i uruchommy naszą aplikację przyciskiem strzałkaz górnego menu. Jeśli nie zapisaliśmy pliku, eclipse powinien nas o to zapytać, oczywiście w takim wypadku klikamy OK. Działanie powinno być takie jak na poniższym screenie, powinna się pokazać konsola i wyświetlić nasz tekst.
Dyskusja i komentarze
Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.
Poniżej znajdziesz archiwalne wpisy z czasów, gdy strona była jeszcze hobbystycznym blogiem.
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ć.
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"); }}
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 :)
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?
Rosol
Szukam osoby ktora pomoze mi ogarnac eclipse i jave jestem w stanie zaplacic ! prosze o kontakt mailowy
Marcin Kunert
Przykładowa domena: marcin.javastart.pl Nazwa pakietu: gra Daje: pl.javastart.marcin.gra
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?
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
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