wiki:ohj2Eclipse
Last modified 17 months ago Last modified on 2015-12-13 19:52:14

Eclipsen käyttö Ohjelmointi 2-kurssilla

Ohjeet toimivat oletuksena Windows XP (32 bit) ja perusdistrot Linuxista. Muut voivat varautua säätämiseen :-)

Java ohjelmia voi toki kirjoittaa millä tahansa tekstieditorilla ja kääntää komentoriviltä. Hyvä integroitu kehitysympäristö (IDE) tekee kuitenkin ammattimaisesta työstä sujuvaa ja siirtää rutiinitöitä ohjelmoijalta ympäristölle.

Eclipse on yksi varsin käyttökelpoinen IDE Java-ohjelmointiin. Toki se on ominaisuuksiensa takia monimutkainen, mutta kun sitä opettelee käyttämään, saakin jo hyvän vaivanpalkan.

  • Mikroluokissa Eclipse on valmiiksi asennettuna ja voidaan hypätä lukujen 1 ja 2 yli. Mikroluokan koneille Eclipsen voi käynnistää komentoriviltä komennolla ee44 Tee joka tapauksessa luvun 3 asetukset.

0. Esivaatimukset

1. Alkuvalmisteluja

  • Hae kotikoneeseen sopiva Eclipsen versio. Ehdottomasti helpoin tapa on: Eclipse IDE for Java Developers (Mars), jossa tulee mm. WindowBuilder valmiiksi mukana. Toinen (huomattavasti työläämpi) mahdollisuus on Eclipse IDE for Java EE Developers (Mars) jolloin WindowBuilderin joutuu asentamaan erikseen (en suosittele muuta kuin niille joilla on ylimääräistä aikaa "leikkiä", kevään jatko-osassa tätä tarvitaan, mutta sen voi asentaa silloinkin)
  • Pura hakemasi .zip sopivaan hakemistoon, esim C:\devel\ec45
  • Hae Java SE 8 Documentation jos sitä ei tullut Eclipsen mukana tai et asentanut Javan yhteydessä. Kelaa kohtaan Documentation ja lataa. Pura tiedosto samaan hakemistoon, johon asensit JDK 1.8:en.
  • Eclipsen asentaminen Linuxiin

2. WindowBuilder

  • Huomaa, että asentamalla Eclipse IDE for Java Developers tulee WindowBuilder sen mukana valmiiksi asennettuna, joten voit ohittaa nämä ohjeet.
  • WindowBuilder Pro: http://www.eclipse.org/windowbuilder/download.php (Siirtynyt Googlelle ja muuttunut ilmaiseksi)
  • Asennus (jos ei tullut Eclipsen mukana):
    • Help/Install New Software/Work with -kohdasta hae
      http://download.eclipse.org/releases/XXXX/
      
    • Etsi ja ruksi General Purpose Tools-kohdasta kaikki WindowBuilderiin liittyvät sekä SwingDesigner ja mahdollisesti myös SWT-jutut
    • Painele Next ja mitä tarvitaankin
    • jos ei toimi, katso tämä linkki
    • käytöstä katso kurssin omat WindowBuilder sivut
  • Jos asennus ei onnistu millään, voit ottaa tuolta (64 bitistä konetta varten) valmiin Eclipsen asennuksen, jossa on WindowBuilder ja Comtest asennettuna. Paketti puretaan C:\devel\ee44-hakemistoon käytetään käynistämällä tuonne tuleva ee44.bat.

3. Perusasetuksia joita kannattaa tehdä

Muilla Wiki -sivuilla on linkkejä miten kurssilla tarvittavia lisäosia asennetaan. Sen lisäksi kannattaa tehdä ehkä hieman muita pieniä säätöjä. Asetukset saat Vesan mallin mukaisiksi ohjeilla 6.3.3.

  • Rivinumerot näkyviin:
    • Window/Preferences/General/Editors/Text Editors/Show line numbers
  • Tab-merkit pois:
    • Window/Preferences/Java/Code style/Formatter/
    • Paina Edit. Jos sinulla ei ole vielä omaa asetustiedostoa, niin anna nimi ja tallenna.
    • Indentation, Tab policy: Spaces only
  • Samalla kannattaa ottaa kommenttien muotoilu pois, niin testit toimivat:
    • Comments ja ruksi pois ruudusta: Enable Javadoc comment formatting
  • Virheet päälle puuttuvista kommenteista:
    • Window/Preferences/Java/Compiler/Javadoc
    • Ruksit kaikkiin kohtiin ja tasoiksi Error ja näkyvyydeksi protected paitsi Warning kohtaan Missing Javadoc comments
  • Virheilmoitukset huomauttamaan enemmän
    • Voit tehdä nämä käsin tai ottaa Vesan asetukset luvun 6 vinkeillä
    • Window/Preferences/Java/Compiler/Errors/Warnings
    • Valitse kustakin alasvetovalikoista vähintään warning, mielellään error, sekä rastita kaikki valintaruudut seuraavin poikkeuksin:
      Code style:
        Unqualified access to instant field: Ignore
          (muuten pitää joka paikkaan laittaa this.)
      
        Non-externalized strings: Ignore
          (muuten pitäisi tehdä GUI-jutussa liikaa käsitöitä)
      
        Method can be static: Ignore
          (sotkee jonkin verran rajapintoja jos tätä uskoisi)
      
        Method can potentially be static: Ignore
          (sama juttu)
      
      Potential programming problems
        Empty statement: Ignore
          (koska ComTest generoi taulukkotesteistä tyhjiä lauseita)
        Boxing and unboxing conversions: Ignore
          (muuten kaikista testeistä tulee virheilmoituksia kun int => Integer)
        Resource leak: Warning
          (koska on paikkoja, joissa on sisäkkäisiä virtoja ja silloin ulompaa ei suljeta jos
           sisempi suljetaan muualla
           @SuppressWarnings("resource"), joka ei tehoa erroreihin)
        Potential resource leak: Warning
          (koska on paikkoja, joissa joku muu sulkee tiedsoton ja näissä korjataan 
           @SuppressWarnings("resource"), joka ei tehoa erroreihin)
        Unused object allocation: Warning
          (koska joskus halutaan tehdä new Jotakin() ja tämä tekee riittävästi)
      
      Generic types
        Redundant type arguments: Ignore
        Unchecked generic type operation: Warning
          (koska muuten on vaikea tehdä esim. geneerinen taulukko)
      
      Code style
        Access to non.accessible member of an enclising type : Warning
           (aina ei jaksa tehdeä getteriä ja setteriä tai kannata laittaa protected) 
        Resource not managed via try-with-resource (1.7 or higher): Warning
           (jotta tarvittaesa vo idaan käyttää @SuppressWarnings("resource") )
      
      Name shadowing and conflicts
        Local variable declaration hides another field or variable: Warning
        ruksi pois kohdasta "Include constructor or setter method parameters"
          (koska opetetaan laittamaan muodostajaan sama nimi kuin attribuutilla)
      
      Unnecessary code 
        Value of parameter is not used: Warning
        Unused import: Warning
         (koska joskus noita on tuolla, ja voi silti ajaa) 
        Unused private member: warning
         (koska kehitysvaiheessa voi joskus tarvita etukäteen esitellä) 
        ruksi pois kohdasta "Ignore parameters documented..."
      
      Null analysis (vain Eclipse Kepler)
        Missing '@NonNullByDefault' annotation on package: Ignore
      
  • Clean up-asetukset kuntoon
    • WindowBuilderin koodigeneraatio ei anna suoraan ylläolevilla asetuksilla virheetöntä koodia, joten:
    • Window/Preferences/Java/Code Style/Clean Up
    • Formatterin tapaan luodaan uusi profiili: New, ja sitten haluamasi nimi ja ok
    • Editistä rastit: Missing Code - Add Serial Version ID ja Default (1L)
    • Tallenna muutokset
    • Nyt voit koodia muokatessa Source valikosta valita Clean Up... ja valita äsken tekemäsi profiilin
    • Nextiä painamalla näet mitä muutoksia Clean Up tekee koodiisi, Finish tekee ne suoraan.
    • Clean upin pitäisi nyt generoida puuttuvat kohdat.
  • Kooditemplateen päiväys
    • Window/Preferences/Java/Code Style/Code Templates/Comments/Types
    • Edit
    • lisätään @author -rivin perään rivi
       * @version ${date}
      
    • OK
  • Merkistön muuttaminen demonpalautuksia ajatellen yhteensopivaksi
    • Ihan vaan ettei koodi näytä demonpalautustilaisuuksissa ääkkösten suhteen tältä
    • Project/Properties/Resource
      • Kohta "Text file encoding" -> Other: ISO-8859-1 (tai ISO-8859-15) (jos ei jo ole)
      • Kohta "New text file delimiter" -> Other: Windows

  • WindowBuilder koodin tuottaminen niin, että tehdään nimettyjä kenttiä ja alustetaan ne saman tien:
    • Window/Preferences/WindowBuilder/Swing/Code generation
    • valitse Init. Field
    • mahdollisesti ruksi myös Use existing code generation... jos haluat että jo tehdyn koodin tapa säilyy (ei välttämätön, Vesa luopui tästä)
    • Window/Preferences/WindowBuilder/Swing/LookAndFeel ja ruksi kohtaan Apply chosen LookAndFeel in main() method

4. SWT

Grafiikkaa varten voit tarvita SWT:n. Tämä ohje tarvitaan siis jos teet sovellusta jossa SWT on käytössä. Aluksi tästä luvusta ei tarvitse välittää mitään.

Vaihtoehtoja swt.jar:in hankkimiseksi:

  1. Eclipsen asennuksen jälkeen paketti löytyy esim:
    C:\devel\ec44\eclipse\plugins\org.eclipse.swt.win32.win32.x86_64_3.103.1.v20140903-1947.jar
    
  2. Lataa erillinen versio:

Kun tarvitse swt:tä, lisää tuo Jar projektiisi: Project/Properties/Java Build Path/Libraries/Add External JARs... Tai WindowsBuilderillä luo SWT-projekti.

5. Muut vaihtoehdot graafiseen kehitykseen

5.1 Java FX

5.2 Muita Eclipse plugineja

Tämä ei ehkä ole enää ajankohtainen???

6. Vinkkejä

  • Älä tee töitä Eclipsen Workspace-hakemistossa, vaan laita projektit Workspacen ulkopuolelle. Näin vältät projektien menetykset jos joudut tuhoamaan Workspacen.
    • Jonnen mielipide: Parempi tapa on pitää koodit sekä Workspacessa ja versiohallinnassa (esim. git tai subversion, katso https://yousource.it.jyu.fi/ tai tuo "Browse Source" nappi tuolla tämän sivun oikeassa yläkulmassa).
  • Asetuksia löydät helpoiten:
    • Window/Preferences
    • Kirjoitat tyhjään laatikkoon mitä haluat etsiä. Esim. näppäimistöjuttuja varten kirjoita key
  • Ctrl-m maksimoi ja palauttaa aktiivisen editointi-ikkunan, kuten myös tekee sen nimen tuplaklikkaaminen.
  • Vaihda Window/Preferences/General/Keys -kohdasta itsellesi pikanäppäin mm. ohjelman ajamiseen.
    • Tai käytä valmiita pikanäppäimiä kuten Ctrl-F11 (OSX: Cmd-F11) vaihtonäppäimellä tai ilman. Tarkista Run-menusta oikea näppäin.
  • Jos näyttää virhettä tai varoitusta, niin muista Quick Fix (Ctrl-1 viallisen rivin päällä, OSX: Cmd-1)
  • Tee komento, jolla voit käynnistää Eclipsen komentoriviltä. Mulla on esim. ee44.bat:
    @echo off
    start "Eclipse" "C:\devel\ee44\eclipse\eclipse.exe" %* -vmargs -Xmx1024M -Xms512M -XX:MaxPermSize=256m  -XX:PermSize=128m  -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=e:/config/plg/eclipse/dropins
    
    ja sitten dropinit tuolla mainitussa dropins-hakemistossa Toki muuta polkuja tuosta tarpeen mukaan. Tuo kommentti poistetaan kun ruvetaan tekemään C++ juttuja. Linuxissa kuulemma hyvin toimivia arvoja ovat olleet:
    -Xms128m (oletus 40m)
    -Xmx512m (oletus 256m)
    -XX:MaxPermSize=256m (128m:kin toimi ihan kivasti)
    -XX:PermSize=128m (64m:kin toimi ihan kivasti)
    
    • Arvot riippuvat tietokoneeseesi asennetun työmuistin määrästä ja siitä, kuinka paljon olet valmis antamaan Eclipsen käyttöön. Yllä olevat arvot ovat joillekin isoille projekteille auttamattoman pieniä, joten jos tietokoneessasi on enemmän kuin kaksi gigaa työmuistia, kasvata noita arvoja.
    • Virallinen tapa näille asetuksille on muuttaa tiedostoa eclipse.ini, joka löytyy siitä hakemistosta, mihin Eclipse on asennettuna, tai ympäristömuuttujan ECLIPSE_HOME osoittamasta paikasta. Tämä ympäristömuuttuja ei välttämättä ole asetettu. Lisätietoja: katso http://wiki.eclipse.org/Eclipse.ini
  • Workspacen asetusten siirto toiseen workspaceen: kopioi vanhan workspacen .metadata-hakemisto hakemistoon, joka on uuden workspacen osoitteena.

6.1 Aliohjelma-kirjastot automaattisesti mukaan

Seuraavilla ohjeilla voi esim. Ali.jar ja Graphics.jar lisätä niin, että en ovat aina mukana,

  • valikosta File/New Java project
  • avautuneesta ikkunasta configure jres
  • sitten valitse se installed jre jossa on ruksi ja paina edit
  • sitten add external jars
  • sitten valitse tiedostot ja paina finish

Näin lisätyt kirjastot tulevat kuin osaksi systeemiä ja sen jälkeen niitä ei saa enää lisätä normaalia kautta.

6.2 Eclipse ja oletushakemisto

  • oletushakemistoa voi joutua säätämään jos esim lukee tai kirjoittaa ohjelmasta tiedostoja
  • oletuksena oletushakemisto on se paikka mistä Eclipse käynnistettiin.
  • tämän voi muuttaa jokaiselle ohjelmalle erikseen jos haluaa:
    1. Aja ohjelma ainakin kerran jolloin sille syntyy Run Configuration
    2. Run/Run configurations...
    3. Etsi ohjelmasi nimi
    4. Arguments/Working directory/Other
    5. kirjoita haluamasi hakemisto
    

6.3 Eclipsen asetusten siirto

6.3.1 Eclipsen asetusten tallentaminen

  • Ota File/Export.../General/Preferences
  • Next ja valitse kaikki sekä hyvä nimi tiedostolle To preference file:
  • pidä tiedosto tallessa

6.3.2 Eclipsen asetusten hakeminen

  • Ota File/Import.../General/Preferences
  • Next ja valitse From preference file: kohtaan aikaisempi nimi
  • Ruksi pois kohdasta Import all ja valitse listalta Java Code Style Preferences ja Java Compiler Preferences
  • Paina Finish
  • Paina Project -> Clean... ja OK, jotta virhelista päivittyy

6.3.3 Vesan asetusten hakeminen

7. Vikamahdollisuuksia

  • Väärä Javan versio. Kirjoita komentoriviltä
    java -version
    
    pitäisi tulla jotakin tyyliin:
    java version "1.8.0_25"
    Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
    Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
    
    jos ei tule, etsi syy. Se voi olla että sinulla on muita Javoja asennettuna ja ne tulevat polusta ensin näkyville.
  • Eclipse sulkeutuu itsestään ennen workspacen valintaa. Kannattaa poistaa Eclipsen Configuration kansio.
  • Jos uusia asennuksia tehdessä valittaa features.xml -tiedostosta, niin tuhoa site.xml eclipsen hakemistosta.
  • Asetusten sekoaminen. Jos Eclipse ei lähde mikroluokissa käyntiin, niin poista hakemistot:
      U:\config\eclipse_jee
      C:\Documents and Settings\USERNAME\Local Settings\Eclipse
    
    Jos tämäkään ei auta, niin Eclipsen käynnistyessä anna Workspacelle nimi, jota ei vielä ole.

7.1 Java versio ristiin

  • jos saat virheilmoituksen tyyliin
    java.lang.UnsupportedClassVersionError: wbKerho/KerhoGUI : Unsupported major.minor version 51.0
    
    on kyseessä todennäköisesti se, että pyydät käännöstä Java 1.8:lla:
    Project/Properties/Java Compiler  (täällä näkyy 1.8)
    
    mutta ajoympristösi (JRE=Jave Runtime Environment) on asetettu pienemmäksi:
    Project/Java Build Path/Libraries/  (täällä esim. jre1.6.0_20)
    
  • korjaus:
    1. joko muuta Java Compiler 1.6 tai
    2. muuta JRE 1.8-versioon
  • voit muuttaa ajoympäristön yliopiston koneella seuraavasti
    Project -> properties -> Java Build Path -> Libraries
    
    Add Library -> JRE System library -> Installed JRE's
    
    Add -> Standard VM -> JRE home -> C:\Program Files (x86)\Java\jdk1.8...(jotakin) ja OK
    

8. Eclipse ja Vista 64 ja Windows 7 64 bit

9. Ajettavan Jar-tiedoston tuottaminen

9.1 Tekeminen 1. kerran

Eclipsestä voi tehdä valmiiksi ajettavan .jar -tiedoston seuraavasti:

  • File/Export/Java/Runnable Jar File/Next
  • Valitse Launch Configiratiioniin se sovellus josta haluat tehdä .jar-tiedoston
  • Export destination kohtaan laita se paikka johon haluat .jar:in tulevan ja sen nimi (helpointa ehkä Browsen kautta). Mieluusti vaikka projektin hakemisto (ei missään nimessä src tai sen alla oleva hakemisto)
  • Anna pallukan olla kohdassa Extract required...
  • Kannattaa tallettaa myös Ant-skripti, jotta on helppo tuottaa uusi versio
  • Ant-tiedoston paikaksi kannattaa laittaa projektin hakemisto (ja lisätä se myös files.txt:hen, eli myös versionhallintaan) ja nimeksi build.xml (paikaksi ei missään nimessä src tai sen alla oleva hakemisto)
  • Finish

(* Jos käytät SVN:ää, voit joutua tuomaan kyseiset tiedostot vielä klikkaamalla SVN:ssä hiiren oikeaa ja valitsemalla import file siinä osassa polkua jonne ne haluat. )

9.2 .jar-tiedoston ajaminen

Nyt sinulle on syntynyt valmis ajettava .jar jonka voit ajaa

  • kirjoittamalla komentoriviltä
    java -jar NIMI.jar
    
  • mahdollisesti jopa
    NIMI.jar
    
  • klikkaamalla tiedostonhallinnasta .jar -tiedostoa.

Tämä .jar kannattaa harjoitustyössä laittaa myös versionhallintaan (eli lisätä files.txt:hen), jotta ohjaaja voi helposti sitten kokeilla ohjelmaa.

9.3 Uuden .jar tiedoston tekeminen

Uuden .jar-tiedoston tekeminen:

  • valitse hiiren oikealla build.xml
  • Run as/Ant build
  • jos projektin kirjastotiedot yms muuttuvat kovin paljon, voi olla helpointa tehdä .jar ja build.xml uudelleen kohdan 9.1 ohjeilla
  • toki voi muokata vastaavasti build.xml tiedostoa kunhan tutustuu sen syntaksiin

10. Muita temppuja

10.1 Oman kirjaston tekeminen

10.2 Interaktiivinen Java

  • DrJava:n avulla voi Javaa käyttää interaktiivisesti
  • valitse tuolla Eclipse Plugin, lataa .zip ja pura sieltä .jar Eclipsen dropins hakemistoon
  • Window/Open perspective/Other/DrJava
  • kirjoita Interaction ikkunaan java-lauseita. Tulostusta ei tarvitse, koska muuttujan nimen kirjoittaminen tulostaa sen sisällön

10.3 Turhien varoitusten väliaikainen poistaminen

11. Eclipse ja tavukoodin tutkiminen

12. Mac OS X

12.1 OS X 10.7 ja uudemmat

  • Asenna ensin Oraclen Java 1.8.
  • Hae sitten Eclipse yllä olevien ohjeiden mukaan. Muista valita 64 bittinen versio.
  • Pura haettu tiedosto tuplaklikkaamalla sitä. Samaan hakemistoon syntyy uusi alihakemisto nimellä eclipse.
  • Siirrä hakemisto haluamaasi paikkaan (esimerkiksi Ohjelmat / Applications -hakemistoon).
  • Käytä Eclipseä.
  • Jos tulee asennuksessa ongelmia, varmista, että Java on asennettu, se on versio 1.8 ja käytät käyttöjärjestelmää versioltaan 10.7 tai uudempi. Jos ongelmat eivät tällä ratkea, ota yhteys luennoitsijaan (joka ottaa yhteyden ji:hin).

12.2 OS X 10.6 ja vanhemmat

Java 1.6:lla Eclipse ja WindowBuilder toimivat Macissa hyvin, mutta 1.7 versiolla tulee jo Eclipsenkin kanssa ongelmia. JDK7:sta on Macille julkaistu vasta Developer Preview. OpenJDK:sta on myös oma aktiivisemmin kehitettävä porttaus Macille.

Asennusvaiheet

  • Hae ja asenna uusin Oraclen JDK7
  • Avaa Java Preferences (esim. /Applications/Utilities/Java Preferences.app)
  • Aktivoi ja siirrä molemmat 1.7 versiot listan ylimmäisiksi
  • 1.6 ei tarvitse välttämättä poistaa

Eclipse (Alkuperäinen ohje tarkoitettu OpenJDK:lle, mutta toimii Orclen JDK:n kanssa)

  • Hae ja pura Eclipse haluttuun kansioon
  • Tee tarvittavat muutokset (käynnistysskripti ja eclipse.ini) seuraavan ohjeen mukaan: http://code.google.com/p/openjdk-osx-build/wiki/EclipseWithOpenJDK
    • Jos käyttää Oraclen JDK:ta pitää huomata muuttaa kansioiden polut oikeiksi (esim. 1.7.0.jdk -> JDK 1.7.0 Developer Preview.jdk)
  • Eclipsen asetuksista Preferences->Java->Installed Jars -kohtaan pitää käydä lisäämässä asennetun javan polku.
    • .jdk -paketin sisältä ei välttämättä pysty selaamaan, joten Home -kohtaan joudut käsin laittamaan asennuspolun (esim. /Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home/

Muista lisätä (tarvittaessa) myös asennettu java projektiisi/workspaceen.

Joissakin tapauksissa joutuu tekemään symlinkin /Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/ -> /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK Myös Info.plistiä (löytyy Eclipsen asennuskansiosta Eclipse.app -paketin sisältä Contents -kansiosta) saattaa joutua muokkaamaan seuraavanlaiseksi:

...
<key>Eclipse</key>
    <array>
        <string>-vm</string>
        <string>/Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home/</string>
        <string>-keyring</string>
...

Eli lisäämään Eclipse kohtaan -vm ja Javan polun.

13. Mikäli WindowBuilder ei löydy Eclipsestä mikroluokissa

Jos Eclipsestä käynnistää vanhan 3.6-version (Helios), se voi sotkea asetuksia sen verran, että WindowBuilder-välilehti ei suoraan Eclipsestä enää löydy.

Tämän saa korjattua seuraavasti:

  • Mene hakemistoon U:\config.
  • Poista kansio eclipse_jee.

Huomioi, että tämä voi poistaa joitain käyttäjäkohtaisia asetuksia. Tämän jälkeen WindowBuilder pitäisi taas toimia Eclipsessä. Helios-version käyttämistä tulisi välttää ja käyttää uudempaa Kepler-versiota.