Kompilering av Java-program med eclipse SDK för den som kan BlueJ

CHALMERS
Institutionen för data- och informationsteknik
©2006 Uno Holmer
[email protected]
www.chl.chalmers.se/~holmer/
Manual
1 (5)
2006-03-09
Kompilering av Java-program med
eclipse SDK
för den som kan BlueJ
Inledning
Eclipse är ett kraftfullt kodutvecklingsverktyg för Java. Det kan laddas ner gratis från
www.eclipse.org. I detta papper beskrivs kortfattat hur man hanterar små Java-projekt med
eclipse. Verktyget kan upplevas som lite krångligt att sätta sig in i, men har trots det många
användarvänliga finesser, bl.a. en utmärkt aktiv hjälpfunktion, möjligheter att avlusa program
med trådar, m.m.
Beteckningar: I exemplen nedan är proj namnet på ett fiktivt projekt, MainClass namnet på en
tänkt huvudklass i ett projekt. Huvudklassen skall innehålla main-metoden. Text typsatt i Arial
är kommandon, begrepp m.m. som visas i eclipse. Uttryck som A->B betyder att du först skall
välja A (t.ex. en meny) och sen alternativet B etc. Text som du skall skriva in i inmatningsfält är
satt i Courier.
Workspace
Eclipse arbetar alltid mot en arbetskatalog (workspace) i filsystemet. När eclipse startas kan man
bestämma vilken som skall vara arbetskatalog. Inställningen kan ändras senare.
Det grafiska användargränssnittet
Börja med att öppna två användbara navigationsflikar till vänster i fönstret:
1. Window->Show view->Navigator
2. Window->Show view->Package explorer
Ha alltid Package explorer-fliken vald när du kompilerar.
Skapa ett Java-projekt
Välj File->New->Project->Java Project->Next
1. Project name: proj
2. Contents: Create project in workspace
3. Project Layout: Create separate source and output folders
a. Configure defaults
i. Source and output folder
1. Välj Folders
2. Source folder name: src
3. Ouput folder name: bin
ii. Apply
iii. Ok
4. Finish
eclipse.doc
Objektorienterade applikationer, DAT055 0205, DAI 2, 05/06, lp III
CHALMERS
Institutionen för data- och informationsteknik
©2006 Uno Holmer
[email protected]
www.chl.chalmers.se/~holmer/
Manual
2 (5)
2006-03-09
Importera ett BlueJ-projekt
Skapa först ett projekt enligt föregående punkt.
File->Import->File system->Next
1. From directory: navigera till BlueJ-projektets rotkatalog
ok
2. Select all
3. Filter types
a. kryssa .java
b. ok
4. Into folder: proj/src
5. Finish
Kompilera ett projekt
Main-metod
Om du importerat filer från BlueJ behöver du troligen definiera metoden main eftersom denna
ofta inte används i BlueJ-projekt. Bestäm vilken klass som skall vara huvudklass och lägg till
metoden i klassen enligt följande mall. Ex. Antag att klassen heter MainClass , då kan
metoden typiskt se ut så här:
public static void main(String[] arg) {
MainClass obj = new MainClass(ev. argument);
obj.startmetod(ev. argument);
}
Metoden kan givetvis ha annat innehåll, beroende på tillämpningen. Öppna källkodsfilen för
MainClass genom att dubbelklicka på dess ikon i Package explorer-trädet.
Kompilera
När du kompilerar skall alltid Package explorer vara öppen, inte Navigator.
Project->Build project
Nu skall katalogen proj/bin innehålla .class-filerna med den kompilerade bytekoden.
Verifiera detta i utforskaren eller i Navigator.
Fungerar det inte?
Project->Clean...
brukar lösa problemet.
eclipse.doc
Objektorienterade applikationer, DAT055 0205, DAI 2, 05/06, lp III
CHALMERS
Institutionen för data- och informationsteknik
©2006 Uno Holmer
[email protected]
www.chl.chalmers.se/~holmer/
Manual
3 (5)
2006-03-09
Skapa en Exekveringskonfiguration
Innan programmet kan exekveras måste en exekveringskonfiguration skapas. Se till att projektet
är öppet innan du fortsätter nedan.
Run->Run...
1. Configurations:
a. markera Java application
b. New
2. Name: proj
3. Project: proj
4. Main class: MainClass
5. Apply
6. Close
Exekvera ett program
Eftersom man kan ha många exekveringskonfigurationer är det inte säkert att den som är vald
gäller det aktuella projektet. Om du är osäker eller om fel applikation exekveras måste du välja
rätt konfiguration:
Run->Run...
1. Configurations: markera rätt applikation
2. Run
I fortsättningen exekveras applikationen enklast med den lilla grönvita pilen i verktygslisten
längst upp i fönstret.
Välja Java-maskin
Eclipse kan arbeta med flera olika Java-versioner. T.ex. kan olika projekt ställas in så att de
kompileras med olika versioner.
Window->Preferences
Java->Installed JREs
Välj den JRE du vill ha eller addera den till tabellen om den inte finns där. (JRE = Java Runtime
Environment)
eclipse.doc
Objektorienterade applikationer, DAT055 0205, DAI 2, 05/06, lp III
CHALMERS
Institutionen för data- och informationsteknik
©2006 Uno Holmer
[email protected]
www.chl.chalmers.se/~holmer/
Manual
4 (5)
2006-03-09
Resursfiler
Resurser som t.ex. bild- och ljudfiler placeras lämpligen i en egen katalog resources i
projektets rotkatalog. Där skall alltså finnas katalogerna src, bin och resources.
Arkivfiler
Genom att packa ihop en samling .class-filer och resurser i en JAR-fil (Java ARchive) får
man en plattformsoberoende applikation som kan exekveras oberoende av utvecklingsverktyg
som BlueJ eller Eclipse. En JAR-fil kan exekveras med kommandot
> java –jar JAR-fil
i ett Linux-shell eller DOS-prompt, eller genom att klicka på namnet i en desk-top-omgivning,
t.ex. i Windows utforskare.
En JAR-fil är i princip en vanlig arkivfil av typen .zip som förutom applikationens filer
innehåller en textfil med namnet MANIFEST.MF. Denna anger namnet på klassen som
innehåller main-metoden och filen brukar skapas automatiskt av utvecklingsvektygen. mainmetoden måste man dock skriva själv. 1
JAR-filer kan skapas med både BlueJ och Eclipse, eller på kommandoraden.
Skapa en arkivfil med eclipse
1. Öppna först projektet som skall exporteras till arkivfilen.
2. Spara alla filer och kompilera projektet.
3. Högerklicka på projektnoden och välj
a. Export->JAR File->Next
b. Kryssa rutan Export generated class files and resources
c. Välj namn och plats för arkivfilen: proj.jar
d. Next
e. Next
f. Main class: browsa till klassen MainClass
g. Finish
Arkivfilen proj.jar ligger nu i den valda katalogen. Om allt gjorts rätt skall den gå att exekvera.
För mer information se http://java.sun.com/docs/books/tutorial/deployment/jar/index.html.
Skapa en arkivfil på kommandoraden
Följande kommando skapar JAR-filen proj.jar. Det kan köras i t.ex. ett Linux-shell eller ett
DOS-prompt-fönster:
> jar -cf proj.jar filer...
c = create
f = file
1
Det går att göra en JAR ”manuellt” med något verktyg som tillverkar .zip-arkiv, men då får man själv skapa och
lägga till manifest-filen till arkivet.
eclipse.doc
Objektorienterade applikationer, DAT055 0205, DAI 2, 05/06, lp III
CHALMERS
Institutionen för data- och informationsteknik
©2006 Uno Holmer
[email protected]
www.chl.chalmers.se/~holmer/
Manual
5 (5)
2006-03-09
Exekvera en arkivfil som innehåller resurser
Det går att inifrån applikationen hämta resurser från en JAR-fil, t.ex. m.h.a. klassen
java.util.jar.JarFile, men det enklaste är att manuellt extrahera resurskatalogen ur
JAR-filen innan den exekveras första gången. Följande kommando extraherar katalogen
resources och dess eventuella underkataloger ur JAR-filen proj.jar:
> jar -xvf proj.jar resources
Därefter kan proj.jar exekveras som vanligt.
Använda klasser i JAR-filer
För att använda förkompilerade klasser (byte-kod i .class-filer) i ett program kan du gå till
väga på något av följande sätt.
Utnyttja javas extensionsmekanism
Placera JAR-filen i katalogen för den java-version som används av eclipse, t.ex. jdk1.5.0_06
/lib/ext och starta om eclipse. Metoden är bekväm, men den fungerar nog bättre hemma än i
skolan eftersom du måste göra om proceduren vid varje arbetspass.
Importera JAR-filen till projektet
1. Placera t.ex. JAR-filen i rotkatalogen till dina eclipseprojekt för övning 1.
2. Öppna eclipse-projektet där du vill använda JAR-filen.
3. Högermarkera projektnoden i Package Explorer.
a. Properties->Java Build Path->Libraries->Add External JARs
i. Browsa till JAR-filen.
ii. Open
iii. Ok
4. Kompilera om projektet.
Importera klasserna till programmet
I de java-filer som använder paketet(en) i JAR-filen måste du i vanlig ordning skriva
importdeklarationer. Ex.
import mittPaket.*;
MinKlass x = new MinKlass();
...
eclipse.doc
Objektorienterade applikationer, DAT055 0205, DAI 2, 05/06, lp III