Eclipsen käyttö Ohjelmointi 2-kurssilla

# asennusurakka

Asennusurakka

# asennusedistyy20
# asennusongelma20

HUOM! Videoilla voi olla eri numeron Java ja Eclipse. Käytä kaikkialla:
JDK: 21.0.1 ja Eclipse 2023-12.

Miksi Eclipse?

Vaikka Java-ohjelmia voi toki kirjoittaa millä tahansa tekstieditorilla ja kääntää komentoriviltä, tekee hyvä integroitu kehitysympäristö (IDE), kuten Eclipse, homman haltuunotosta helpommin lähestyttävämpää ja se tekee harjaantuneesta ammattimaisesta työskentelystäkin sujuvampaa ja siirtää rutiinitöitä ohjelmoijalta kehitysympäristölle.

Eclipse on yksi varsin käyttökelpoinen IDE Java-ohjelmointiin. Ammattilaistyökaluna se on toki ominaisuuksiltaan laaja, ja voi tästä syystä tuntua aluksi monimutkaiselta, mutta kun sitä opettelee käyttämään, saakin jo hyvän vaivanpalkan.

Vaihtoehtona Eclipselle voi käyttää esimerkiksi JetBrainsin IntelliJ IDEA-kehitintä.

Seuraavat ohjeet toimivat oletuksena Windowsin versioilla 7–11, uudemmilla Intel Maceilla ja M1 Maceilla ja Linuxin "perusdistroilla". Muut voivat varautua pieneen säätämiseen :-)

Tässä tekstissä "M1 Mac" tarkoittaa kaikkia Apple silicon, eli Applen omalla Arm-pohjaisella prosessorilla toimivia tietokoneita. -ji

19 Jan 24

Vaikka noista on videot, niin muista lukea tekstiohjeita, koska videoilla sattuu aina pieniä kömmähdyksiä ja tekstistä virheet on helpompi muokata pois.

Mac videoilla on joissakin kohti oikaistu ja tehty eri järjestyksessä, jolloin joka "toimiiko" -kokeilua ei ole tarvinnut tehdä ihan joka vaiheessa. Mutta kannattaa ehkä silti mennä tekstin ehdottamasa järjestyksessä.

Windows:

Intel Mac:

Videon kohdasta 2:34 eteenpäin en pääse asennuksessa eteenpäin. Minulla ei näy jdk-17-JavaFX tiedostoa listassa, ja kun yritän painaa Add ja lisätä tietoja videon mukaan, koneelta ei löydy Java kansiota ollenkaan, pelkästään edellisessä vaiheessa tehdyn devel-kansion javafx-jmods-19 näkyy. Kuitenkin asennusten testauksissa java --list-modules komennolla kaikki mainitut tulostuivat päätteessä. Miten tästä eteenpäin? Edit: ongelma ratkesi, jostain syystä omalla Macilla Java-kansio ei löydy selailemalla kansioita, vaan kansiorakenne piti kirjoittaa suoraan tekstikenttään

VL: Nimenomaan versionumerot muuttuvat jatkuvasti. Tuo 19 on oikein k2023.

VL: Ja nyt 2024 kevät se on 21.

09 Jan 23 (edited 08 Jan 24)

Apple M1 (kurssiasetukset puuttuu, katso ne Intel Macistä, tosin Intel Mac- videot toimivat muillekin aika hyvin):

1. Asentaminen

1.1 Esivaatimukset

  • Onhan Java asennettuna!?
  • seuraa tätä ohjetta sitten vähintään kohtaan 6, eli perusasetuksetkin tehty.
  • lähdetään ajatuksesta että asennetaan ohjelmat c:\devel -hakemistoon. Jos sitä ei ole, tee se.

1.2 Windows

  1. Lataa Eclipse.org sivuilta kohdekoneelle sopiva versio.
  • Rullaa sivulla alaspäin kohtaan:  Eclipse IDE for Java Developers. Katso että hakemasi tiedoston nimi on varmasti: eclipse-java-2023-12....
  • Toinen vaihtoehto on:
    Eclipse IDE for Java EE Developers
    jolloin WindowBuilderin (tosin tätä ei nykyisin JavaFX aikaan tarvita) joutuu asentamaan erikseen (kevään jatko-osassa tätä EE versiota tarvitaan, mutta sen voi asentaa silloinkin)
  • Voit halutessasi tutustua Eclipsen eri versioiden vertailuun.
  1. Asenna installerilla tai pura hakemasi .zip sopivaan hakemistoon, esim C:\devel\ec2312 Purkaminen käy taas helpoiten komentoriviltä (korvaa e: sillä mihin latasit):

     c:
     cd \devel
     mkdir ec2312
     cd ec2312
     tar -xf e:eclipse-java-2023-12-R-win32-x86_64.zip
  2. Nyt pitäisi hakemistossa näkyä

     c:\devel\ec2312\eclipse
# mac

1.3 Mac OS X Lion 10.7 ja uudemmat

Kun asensin Eclipsen asennussovelluksen ehdottamaan oletuskansioon (kotikansioon /Users/kayttaja/…) ei ComTest toiminut. Poistin asennuksen ja asensin uudestaan suoraan /Applications kansioon. Sitten alkoi toimimaan.

Kannattaa heti alussa valita tuo sijoituspaikka. Tosin Eclipse asentaa kotikansioon jonkin asetustiedoston, joten siinä linkitys saattaa kärsiä, jos on useita käyttäjiä.

05 Jan 21 (edited 05 Jan 21)

Alla kaksi vaihtoehtoa:

  1. Suora paketin purkaminen
  2. Asentajan käyttäminen

Omissa kokeiluissa molemmilla tuli toimiva versio, joillakin vain vaihtoehdolla 1 sai ComTestin toimimaan. Eli ehkä kannattaa yrittää sitä ensin.

  1. Hae paketoitu versio (valitse Eclipse IDE for Java Developers kohdasta macOS x86_64 | AArch64 oikea versio) ja sitten avaa se ja siirretään Eclipse ~/devel/ec2312-kansioon.
  1. Asennus asentajan avulla:
    • Hae Eclipsen asentaja (installer) Eclipsen sivuilta.
      Muista Intel (x86_64) vs M-sarja (AArch64)!
    • Aja eclipse-installer. Valitse Eclipse IDE for java developers
    • eli tuplaklikkaa installeria ja asenna Eclipse Applications-kansioon (videossa tuota ei tehty heti ja siitä hirveä tappelu)
    • Älä Installerin aikana vaihda JDK:ta
    • Jos tulee asennuksessa ongelmia, varmista, että Java on asennettu, se on versio 21.0.1 tai uudempi 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).

1.4 Linux

1.4.1 Pikasennus yhdelle käyttäjälle

  1. Mene lataamaan Eclipse 2023-12 R
    • Eclipse IDE for Java Developers (Linux 64-bit)
    • Eclipse IDE for Enterprise Java Developers (Linux 64-bit)
    Jos suoritat keväällä JSP-osuuden, valitse Java EE. Muuten voidaan valita kumpi vain.
  2. Eli lataa jompikumpi asennuspaketti:
    • eclipse-java-2023-12-R-linux-gtk-x86_64.tar.gz
    • eclipse-jee-2023-12-R-linux-gtk-x86_64.tar.gz
  3. Tallenna hakemistoon: /home/Anonymous/devel/ec2312
  4. Pura komennolla:
    • tar -zxvf eclipse-java-2023-12-R-linux-gtk-x86_64.tar.gz
    • tar -zxvf eclipse-jee-2023-12-R-linux-gtk-x86_64.tar.gz
  5. Käynnistä: /home/Anonymous/devel/ec2312/eclipse/eclipse

Huomiona että esim snappina asennettuna distrokohtaista onnistuuko comtest pluginin asentaminen. Eli varminta asentaa tar.gz paketista.

01 Sep 23 (edited 01 Sep 23)

1.4.2 Tarkemmat ohjeet jos halutaan jotakin muuta

  • tälle on oma ohjesivu
  • asennusten jälkeen jatka tästä yhteisillä ohjeilla

Päivittäminen 2019-03-versioon (vanha, ohita tämä)

2. Alkuasetukset

# jre

2.1 Java 21 JRE tarkistaminen/lisääminen

  1. Käynnistä Eclipse klikaamalla eclipse-hakemistossa olevaan eclipse.exe

    • käynnistyminen kestää sikakauan!
      (jos ei käynnisty, niin katso alempaa)
    • Workspace kysymykseen esim:
      • Windows: c:\kurssit\ohj2\ws
      • Mac: /Users/Anonymous/kurssit/ohj2/ws
      • Linux: /home/Anonymous/kurssit/ohj2/ws
  2. Valitse menusta Window/Preferences/Java/Installed JREs
    (Mac: Eclipse/Preferences/... tai Eclipse/Asetukset/...)

  3. Add

  4. Standard VM

  5. Next

  6. JRE home kohdassa paina Directory ja selaa kohtaan, johon asensit JDK+JavaFX:n, eli esim C:\devel\jdk-21-JavaFX
    (Macilla /Library/Java/JavaVirtualMachines/jdk-21-JavaFX)

  7. JRE name kohdassa nimetään jdk-21-JavaFX

  8. Laitetaan vielä avustus oikeaan paikkaan: (voi olla oikein valmiiksi)

    1. klikkaa JRE system libraries alta ainoa rivi valituksi
    2. valitse Javadoc Location... ja pitäisi aueta dialogi
    3. kirjoita https://docs.oracle.com/en/java/javase/21/docs/api/
    4. OK
      JDK
  9. Jos Windows, niin lisää kohtaan (HUOM! Tämä on uusi 2023)
    Default VM arguments seuraava jono jotta skandit tulostuvat konsoliin oikein:
    -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8

  10. Finish

  11. Ruksi jdk-21-JavaFX oletukseksi. JDK

  12. Apply and Close

  13. Window/Preferences/Java/Compiler/Compiler compliance level: kohdan valikosta 21 ellei ole valmiina. (Tämä kohta oli unohtunut videolla tehdä!)

    Compliance
    Compliance

Varoitus: jdk-21-JavaFX kohdassa pystyi valitsemaan vain yhden dokumentaationta kerrallaan. Jatkossa pitää selaimella etsiä https://openjfx.io/javadoc/21/

Ei ole valittavissa kuin max 17?

VL: en ole ehtinyt tutkimaan etä auttaisiko tuohon joku Eclipse päivitys. Mutta se 17 toiminee ihan ok.. Tarkoittaa vaan ettei Java 18 uudet ominaisuudet ole käytössä, mutta en edes tiedä mitä ne olisivat. Materiaalin puolesta ei yli Java 11 ole käytössä.

03 Jun 22 (edited 03 Jun 22)

Kohdassa 9 jos lisää myös argumentin -Dstderr.encoding=UTF-8 niin näkyvät skandit myös System.err -tietovirrassa.

09 Mar 23

Eclipsen ja debuggerin käyttöohjeita löydät aikanaan pääteohjauksesta 3.

Seuraavaksi kannattaa käydä tekemässä kurssin lisäasetukset ja palata sitten jatkamaan lukemista tästä.

# eclipseikaynnisty

2.2 Jos Eclipse ei käynnisty

Jos Eclipsen käynnistymisessä tulee virhe:

Java was started but returned exit code=13

niin lue huolella virheen alkupuolen rivit. Sinulla on erittäin todennäköisesti toinenkin Java asennettuna, ja se "hyökkää" käyntiin ennen sitä uusinta. Tutki tarkoin PATH-asetuksesi, että onko ennen uusimpaan JDK:hon viittaavaa polkua aikaisemmin jokin muu polku. Voit tutkia aktiivista polkua kirjoittamalla komentoriviltä

path

Tarvittaessa vaihda polkujen järjestystä niin, että uusimman JDK:n on ensimmäisenä. Tämä voi vaatia vekslaamista henkilökohtaisen ja systeemipolun välillä.

Voit sitten kokeilla sellaistakin, että eclipse.exe:n kanssa samassa hakemistossa on eclipse.ini. Lisää sinne ennen -vmargs riviä rivit:

-vm
C:\devel\jdk-21.0.1\bin\javaw

Tai vaihtoehtona on myös kokeilla hankkiutua kokonaan eroon ylimääräisistä javoista.

2.2.1 MacOS ja ”Code Signature Invalid”

Jos macOS:llä saat tuon ilmoituksen, se johtuu Eclipsen innostuksesta kirjoittaa ja muokata sovelluksen hakemistoa. Yksi tapa korjata tämä on tehdä asennus uudestaan, mutta ongelma todennäköisesti uusiutuu.

Toinen tapa korjata on asentaa Eclipse kotihakemistoon, esim. hakemistoon

/Users/Anonymous/Applications/

Taustalla on macOS:n tietoturvatarkastus, joka varmistaa, ettei ajettava ohjelmisto ole muuttunut. Voit myös vaikuttaa tähän, mutta riskialttiina toimenpiteenä se jätetään selittämättä.

# kasitteita

3. Eclipsen ja Javan käsitteitä

Edellä tuli aika paljon eri sanoja ja käsitteitä. Seuraavassa yhteenveto niistä:

  • Workspace - Eclipsen yhden työtilan alle voi tehdä useita projekteja. Yleiset asetukset tallentuvat tänne, joten jos teet uusia työtiloja, joutuu kaikkiin tekemään omat asetukset. Koko kurssin voi tehdä yhteen WorkSpaceen.
  • project - karkeasti yksi kokonaisuus on yksi Eclipse projekti. Esimerkiksi harjoitustyö voi olla yksi projekti, demot toinen (tai jokaiselle demolle voi tehdä oman projektin).
  • class - Java-ohjelmat koostuvat luokista. Siksi jokaista ohjelmaa varten on tehtävä vähintään yksi luokka. Yksi projekti voi sisältää (ja usein sisältääkin) useita luokkia.
  • classpath - polku mistä etsitään projektiin kuuluvia Java-tiedostoja. Voi olla levyhakemisto(ja) ja/tai .jar tiedosto(ja).
  • .jar - Java ARchive, pakattu (käytännössä zip) tiedosto joka sisältää java luokkia.
  • .java - Java-luokan lähdekielinen versio
  • .class - tavukoodiksi käännetty Java-luokka
  • JavaFX - käyttöliittymäkirjasto, jossa käyttöliittymän ulkoasu voidaan tehdä esimerkiksi XML-pohjaisen .fxml-tiedoston avulla
  • .fxml - tiedostomuoto JavaFX ohjelman ulkoasun kuvaamiseksi. Voidaan muokata ihan tekstinä tai esimerkiki SceneBuilerillä graafisesti
  • .css - Cascaded Style Sheet - tiedosto, jossa voidaan kertoa komponenttien tyylit (värit, fonttien koot, yms).
  • SceneBuilder - yksi mahdollinen graafinen editori .fxml-tiedostojen muokkaamiseksi
  • src - kansio jossa on lähdekoodit (.java source)
  • bin - kansio jossa on käännetyt koodit (.class binaries), joita sitten ajetaan Java-virtuaalikoneella

Esimerkiksi Hello world ohjelman hakemistorakenne pitäisi olla:

    .classpath
    .project
    src
        hello
            Hello.java
    bin
        hello
            Hello.class
# rakenne

3.1 Suositeltava kurssin hakemistorakenne

Mikroluokassa voi c:\MyTemp\ohj2 tilalla käyttää myös u:\MyPrograms (jolloin tehtäviä voi sujuvasti jatkaa toisella koneella) ja kotikoneessa esim myös c:\kurssit.

Alla suositeltava rakenne noudattaen kerho-ohjelmassa olleita nimiä. Kaikkia automaattisesti syntyneitä tiedostoja/hakemistoja ei alla ole kerrottu. Alla olevaa ei siis tehdä kerralla, vaan se syntyy kurssin aikana.

Harjoitustyön hakemisto ht voi olla myös hyvin sama kuin työn nimi, esim kerho.

Avaa tästä mallirakenne

4. JavaFX ja SceneBuilder

4.1 Asentaminen

  1. Käy tekemässä asennus näillä ohjeilla
  2. Palaa tänne jatkamaan.

4.2 JavaFX projektin luominen

Tulevaisuutta varten muistinvirkistykseksi:

# asetukset

5. Perusasetuksia joita kannattaa tehdä

Muilla Tim-sivuilla on linkkejä miten kurssilla tarvittavia lisäosia asennetaan. Sen lisäksi kannattaa tehdä ehkä hieman muita pieniä säätöjä.

# kurssiplugin

5.1 Kurssin "pluginit"

Lyhyesti lisäosien asentaminen

  • tallenna alla olevista linkeistä (linkin päällä hiiren oikealla ja Save link as...) Eclipsen hakemistossa olevaan dropins-hakemistoon, siis esim.
Win:   c:\devel\ec2312\eclipse\dropins
Mac:   /Applications/Eclipse.app/Contents/Eclipse/dropins
Linux: /home/Anonymous/devel/ec2312/Eclipse/dropins

dropins-kansioon tallentaminen Mac:issä:

# kurssijar

5.2 Kurssin apukirjastot

Tämän kohdan ajokokeilut voi tehdä vasta kun JavaFX-kohdat on ruksittu.

Mikroluokissa alla olevia .jar-tiedostoja ei tarvitse hakea, vaan ne löytyy valmiina kansiosta:

C:\devel\ee410\eclipse\ohj2_library

Omassa koneessa hae hakemistoon jar (ks. edellä suositeltu hakemistorakenne, eli esim c:\devel\jar, älä vain käytä Microsoftin selainta...) Ole tarkkana että tallentuvat nimelle.jar jos tulee.zip, niin vaihda tarkennin.jar:

Tehdään noista vielä käyttäjän kirjasto, jolloin niitä on helpompi lisätä projekteihin. HUOM! Näitä EI saa lisätä JRE:hen tai dropins-kansioon!

  1. Avaa Eclipsessä Window/Preferences/Java/Build Path/User Libraries

  2. New...

  3. User library name: ohj2

  4. OK

  5. Kun uusi kirjastosi on valittuna, Add External JARs...

  6. Valitse kaikki 4 jar-hakemistoosi siirtämää .jar-tiedostoa ja lisää ne.

  7. Klikkaa kukin auki yksi kerrallaan, valitse sitten tuplaklikkaamalla Javadoc Location ja lisää kuhunkin oma Javadoc location seuraavasti:

    ali.jar:      https://kurssit.it.jyu.fi/TIEP111/ohj2/ali/doc/
    FXGui.jar:    https://kurssit.it.jyu.fi/TIEP111/ohj2/FXExamples/FXGui/javadoc
    graphics.jar: https://kurssit.it.jyu.fi/TIEP111/ohj1/graphicsdoc/
    music.jar:    https://kurssit.it.jyu.fi/TIEP111/ohj1/musicdoc
  8. Apply and Close

Liittyen kohtaan 5.2. Mistä tiedän että toimii? Kohdassa 1 sanotaan että tee uusi JavaFx projekti. Tulkitsin tämän ensin niin että tarkoitus oli tehdä New Project –> JavaFX Project. Kun tein näin niin JarDemo ei toiminut. Kun tein “vain” normaalin java projektin aiemmilla asetuksilla niin punoitus häipyi kun lisäsin ohj2.

Toivottavasti tästä on apua muille.

26 May 21 (edited 27 May 21)

5.3 Mistä tiedän että toimii?

Jos videolta puuttui 5.1 ja 5.2, niin olethan ne silti tehnyt ensin?

  1. Tee uusi tavallinen Java-projekti vaikka jarkoe:

    • File/New/Java Project
    • Project name: jarkoe
    • Ruksi Use default JRE ...
    • Ruksi pois Use default location
    • Location (joku tyhjä hakemisto, esim): c:\kurssit\ohj2\demo01\jarkoe
    • Ota ruksi pois: Create module-info.java file
    • Finish

    ja lisää siihen seuraavat kaksi luokkaa.

  2. File/New/Class

  3. Package: jarkoe

  4. Name: JarDemo

  5. Finish

  6. Kopioi sisällöksi seuraava:

"Jos tulee virhe, jossa valitetaan jotain CarSample.png puuttumisesta, varmista että ajat oikeaa tiedosotoa." Tämä virhe tulee, pahoittelen ehkä tyhmää kysymystä, mutta mikä siis on se "oikea" tiedosto mitä pitää ajaa?

VL: Tarviisi nähdä mitä teet, koska hetkeen tätä virhettä ei ole tullut.

Asia selvisi, eli Eclipse ajaa oletuksena edellisen samassa workspacessa ajetun projektin. Pitää valita erikseen oikealla napilla kyseisen projektin päältä run as. Sitten lisäksi piti valita vielä ajettavaksi jardemo ja jardemo2 luokat seuraavassa kysymysboksissa main methodille. Nyt toimii siis.

VL: Pitäisi riittää. että aktiivikseksi klikaa sen tiedoston jonka haluaa ajaa ja sitten vaikka hiiren oikealla Run As. Windowsissa Ctrl-F11.

VL: Vika oli siis että prokekti oli valitu ajettavaksi, ei yksittäinen Java-tiedosto.

07 Jan 22 (edited 10 Jan 22)

JarDemo toimii mutta JarDemo2 kohdalla tulee aina seuraava error eikä aja ja on punasta:

Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found

VL:Onko varmasti oikea jre?

21 Feb 23 (edited 21 Feb 23)
# jarkoe
package jarkoe;
import fi.jyu.mit.Music.MidiPlayer;
import fi.jyu.mit.graphics.*;
import fi.jyu.mit.ohj2.Mjonot;
/** Kokeillaan Jarreja */
public class JarDemo {
    /** @param args ei käytössä   */
    public static void main(String[] args) {
        var window = new EasyWindow();
        double x = 200, y = 200;
        window.add(new Circle(x,y-2*15-20-10,10));
        window.add(new Circle(x,y-15-20,15));
        window.add(new Circle(x,y,20));
        var mp = new MidiPlayer();
        var notes = Mjonot.tayta("C", 3) + "E";
        mp.play(notes);
    }
} 

JarDemo toimii, mutta JarDemo2 antaa virhettä "Error: Unable to initialize main class jarkoe.JarDemo2 Caused by: java.lang.NoClassDefFoundError: Stage". En tiedä onko ClassPath rakentunu oikein. Miten tapahtuu tarkistus, että JRE on JavaFX:lle tehty?

Problem solved. jdk-21-JavaFX oli unohtunut laittaa oletukseksi preferences/java/Installed JREs kohdassa.

09 Jan 24 (edited 10 Jan 24)

Olen lisännyt Jar-tiedostot, tehnyt globaalin kirjaston "ohj2" ja lisännyt sen Jarkokeen Dependenceihi. Silti ei IntellijIDEA tunnista importteja: "Cannot resolve symbol 'fi' ".

VL: Pääteohjauksissa (vaikka etä) voisi selvitä. Mutta tämähän on Eclipse ohje, oletko IDA-ohjeen lukenut huolella?

Olen lukenut kolmesti läpi IDEA-ohjeen, meen etäohjaukseen klo 12, niin päivitän tähän, saatiinko asia hoidettua.

[RATKAISU]

Olkaa varovaisia, kun luotte projektia IDEA:ssa. Valitaa "New Project", älkööt sitä IntelliJ:n omaa JavaFX templatee. IntellijIDEAN template käyttä "Mavenia". Haluat Build systeemiksi Intellij:n

24 Jan 24 (edited 24 Jan 24)
  1. Lisää tekemäsi User-library Ohj2 projektin luokkien etsintäpolkuun, ClassPathiin:
    1. Hiiren oikeaa projektin päällä
    2. Properties/Java Build Path/Libraries/Classpath
      • Tarkista että projektin JRE on JavaFX:lle tehty?
    3. Add Library ja tuplaklikkaa User library
    4. Valitse ohj2
    5. Finish
    6. Apply and Close
  2. Aja. (Eli valitse JarDemo.java aktiiviseksi ja paina Ctrl-F11)
  3. File/New/Class
  4. Package: jarkoe
  5. Name: JarDemo2
  6. Finish
  7. Kopioi sisällöksi seuraava:

Missäköhän vika, kun saan näillä 5.3 ohjeilla tuon alemman JarDemo2 toimimaan kyllä kuten pitää, mutta JarDemo ei suostu ajamaan koska "var cannot be resolved to a type" eli noiden var:ien ymmärtäminen oikein ei taida jostain syystä onnistua?

VL: ihan kuin ois vanha Java.

Kävin asennusohjeita uudestaan läpi tarkistellen, Javasta en itsessään löytänyt mitään vikaa, mutta kun poistin Eclipsen "installed JREs" kohdassa tekemäni JRE definitionin ja tein kohdan "2.1 Java 21 JRE tarkistaminen/lisääminen" uudestaan, niin sen jälkeen alkoi toimia. Liekkö unohtanut jotain ruksia tai jotain muuta mennyt siinä vaiheessa pieleen...

09 Jan 24 (edited 11 Jan 24)
# jardemo2
package jarkoe;
import javafx.application.Application;
import javafx.stage.Stage;
import fi.jyu.mit.fxgui.Dialogs;
/** Toinen jar kokeilu */
public class JarDemo2 extends Application {
    @Override
   public void start(Stage stage) {
       Dialogs.showMessageDialog("Oliko äsken soiva peli?");
   }
   
   /** @param args ei käytössä  */
   public static void main(String[] args) {
       launch(args);
   }
}
  1. Virheitä ei saa näkyä!
  2. Aja.
  3. Jos tulee virhe, jossa valitetaan jotain CarSample.png puuttumisesta, varmista että ajat oikeaa tiedostoa. Eli klikkaa ko. Java-tiedosto aktiiviseksi ja sitten aja se. Ei projekti.

Lisätietoa näistä työkalut-sivulla.

Nyt saat ruksia asennetuksi kohdan: Ali.jar, FXGui.jar

# kurssiasetukset

5.4 Asetusten tuominen Eclipseen / "Vesan asetukset"

Saat Eclipsen asetukset Vesan mallin mukaiseksi seuraavasti:

  1. talleta tiedosto VesanAsetukset.epf levylle haluamaasi paikkaan (esim. c:\devel\ec2312\asetukset, varo erityisesti Macissä ettei nimeä .txt-loppuiseksi). Jos tulee .txt, niin mene Macissa komentorville ko hakemistoon ja sano

    mv VesanAsetukset.epf.txt VesanAsetukset.epf
  2. Eclipsessä File/Import.../General/Preferences

  3. "Next" ja valitse From preference file -kohtaan ladattu tiedosto

  4. Ota ruksi pois kohdasta Import all ja valitse listalta:

    • Java Code Style Preferences sekä
    • Java Compiler Preferences
  5. Paina Finish tai saattaa "natista" että "käynnistä Eclipse uudestaan" ja silloin käynnistetään.

  6. Jos sinulla on jo tehty projekti, niin siivoa se: Valitse Eclipsen valikosta Project -> Clean... ja "OK", jotta virhelista päivittyy

  7. Ota oikoluku pois käytöstä:

    • Window/Preferences
    • kirjoita hakukenttään spell
    • valitse Spelling
    • ota ruksi pois kohdasta Enable spell checking
  8. Avustus aukeamaan erilliseen selaimeen, niin on helpompi lukea:

    • Window/Preferences/Help
    • Open help search: In a browser
    • Open help view documents: In a browser
    • Open help contents: In an external browser
    • käy tarvittaessa kohdasta Web Browser klikkaamassa ja säädä mieliselaimesi
  9. Tarkista että käyttämäsi merkistö on UTF8

    • Window/Preferences/General/Workspace/Text file encoding
    • Other: UTF8
    • Apply and Close

Windows 10 ja Firefox - oletusvalintana Tiedostonhallinnassa on Kansioasetukset - Näytä - Piilota tunnettujen tiedostotyyppien tunnisteet. Kun silloin yrittää tallentaa epf-muotoista linkkiä levylle se muuntuu txt-muotoon. Jos ei ota pois tuota valintaa Piilota… ei pysty tallettamaan epf-muotoista linkkiä levylle. Sen jälkeen se kyllä sujuu.

03 Jan 20

Näiden kurssiasetusten käyttöönoton jälkeen voi käydä niin, että esim myöhemmin kohdassa User library on jo jotakin. Silloin voit käyttää sitä valmista, mutta kunkin .jar-tiedoston sijainti on laitettava vastaamaan sinun koneesi vastaavaa sijaintia.

Samoin voi käynnistyksen jälkeen ehdottaa ihan väärää Workspacea. Silloin kirjoita ensimmäisellä kerralla oman Workspacesi sijainti.

Jos haluat tutustua tarkemmin mitä asetuksia muutetaan, tässä on ohjeet miten asetukset vaihdetaan käsin

Eclipse ehdottaa että metodin pitäisi olla static?

5.5 Omien asetusten tallentaminen ja vieminen

Edellä selitettiin miten voit tuoda valmiita asetuksia Eclipseen. Voit myös tallentaa asetuksia, jos vaikka haluat siirtää itsellesi sopivaksi hiomasi asetuksen johonkin toiseen Eclipse-asennukseen tai saat ne palautettua sieltä jos joudut tekemään uuden Workspacen:

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

Eli tämä kohta vain jos tekee omia asetuksia?

VL: joo

09 Jan 24 (edited 09 Jan 24)

Nyt saat ruksia asennetuksi kohdan: Eclipsen kurssiasetukset. Lue kuitenkin nyt ainakin myöhemmin myös luku Vinkkejä.

6. Muut vaihtoehdot graafiseen kehitykseen

6.1 SWT

Grafiikkaa varten voit tarvita SWT:n (tällä ei kiire). 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\ec2312\eclipse\plugins\org.eclipse.swt.win32.win32.x86_64_3.124.200.v20231113-1355.jar
  2. Lataa erillinen versio:

  • Lataa paketti: http://www.eclipse.org/swt/
  • Pura paketista swt.jar jonnekin (Agoran mikroluokissa valmiina:
    N:\kurssit\ohj2\eclipse\swt.jar)

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

6.2 Window Builder

  • WindowBuilder (käytettiin keväällä 2015, ei paljoa käyttöä enää keväällä 2016, myöhemmin ei lainkaan)
# vinkkeja

7. Vinkkejä

  • Älä tee töitä Eclipsen Workspace-hakemistossa, vaan laita projektit Workspacen ulkopuolelle. Eli kun Eclipse kysyy Workspacen nimeä, niin tämä toki annetaan, mutta projektia tehtäessä projektille annetaan oma hakemisto (oletuksena aina ehdottaa Workspaceen tekemistä. Näin vältät projektien menetykset jos joudut tuhoamaan Workspacen.
    • Jonnen mielipide: Parempi tapa on pitää koodit sekä Workspacessa ja versiohallinnassa (esim. git).
  • Asetuksia löydät helpoiten:
    • Window/Preferences (Mac: Eclipse/Preferences)
    • Kirjoita 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)
  • Näytä TODO-lista (Tasks): Window/Show View/Other/General/Tasks. Löytyy helpoiten kirjoittamalla "Tasks" Show View - ikkunan hakupalkkiin.
  • Tee komento, jolla voit käynnistää Eclipsen komentoriviltä. Mulla on esim. c:\bat polussa (PATH) ja sitten tiedosto c:\bat\ec2312.bat:

      @echo off
      start "Eclipse" "C:\devel\ec2312\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 Eclipse lähtee komentoriviltä käyntiin komennolla

      ec2312
  • 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.

7.1 Aliohjelma-kirjastot automaattisesti mukaan

Seuraavilla ohjeilla voi esim. Ali.jar ja Graphics.jar lisätä niin, että ne 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.

7.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

7.3 Eclipse ja JUnit-testikattavuus

JUnit-testin tai testisarjan (AllTests.java) kohdalla Coverage As/JUnit Test. Merkinnät saa pois Coverage välilehden rukseista Remove All Sessions. Image

8. Vikamahdollisuuksia

  • Väärä Javan versio. Kirjoita komentoriviltä

    java -version
  • pitäisi tulla jotakin tyyliin:

    java version "21.0.1"
    OpenJDK Runtime Environment (build 21.0.1+9-18)
    OpenJDK 64-Bit Server VM (build 21.0.1+9-18, mixed mode, sharing)
  • 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.

8.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 21:lla:

     Project/Properties/Java Compiler  (täällä näkyy 21)

    mutta ajoympristösi (JRE=Jave Runtime Environment) on asetettu pienemmäksi:

     Project/Properties/Java Build Path/Libraries/  (täällä esim. jre1.11.0_1)
  • korjaus:

    1. joko muuta Java Compiler 11 tai
    2. muuta JRE 21-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.9...(jotakin) ja OK

8.2 macOS: Eclipse ei voi avata (Eclipse can't be opened)

Jossain macOS-koneissa voi joskus tulla Eclipsen asennuksen tai käytön jälkeen "Eclipse ei voi avata".

Vika lienee macOS:n varmennejärjestelmässä (tai Eclpisen tavassa allekirjoittaa sovelluksen), ja korjauksena tulee ajaa

sudo codesign --force --deep --sign - /Applications/Eclipse.app

Syötä oman käyttäjätunnuksen salasana. Kun komento valmistuu, kokeile avata Eclipse uudelleen.

# wseikaynnisty

8.3 Eclipse Workspace ei lähde käyntiin

# jar

9. Ajettavan Jar-tiedoston tuottaminen

9.1 Tekeminen 1. kerran

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

  • File/Export.../Java/Runnable JAR file (eri kuin JAR file)

  • Next

  • Valitse Launch Configurationkohtaan sen sovelluksen pääohjelma, josta haluat tehdä ajettavan .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 libraries into generated JAR

  • Kannattaa tallettaa myös Ant-skripti, jotta on helppo tuottaa uusi versio

  • Ant-tiedoston paikaksi kannattaa laittaa projektin hakemisto ja nimeksi build.xml (paikaksi ei missään nimessä src tai sen alla oleva hakemisto)

    • Muista lisätä se myös versionhallintaan.
  • Finish

  • Katso syntynyt build.xml ja jos siellä on rivejä tyyliin:

         <zipfileset excludes="META-INF/*.SF" src="C:/devel/ee2012/eclipse/plugins/org.junit.jupiter.api_5.7.0.v20201026-1537.jar"/>
         <zipfileset excludes="META-INF/*.SF" src="C:/devel/ee2012/eclipse/plugins/org.junit.jupiter.engine_5.7.0.v20201026-1537.jar"/>

    niin poista ne kaikki. Sitten aja uudelleen hiiren oikealla build.xml ja valitse Run as/Ant build

  • HUOM - OBS! Älä poista rivejä tyyliin:

         <zipfileset excludes="META-INF/*.SF" src="C:/devel/jar/fxgui.jar"/>

    Nämä ovat kurssin oman kirjaston riippuvuuksia, ilman näitä ei .jar toimi.

  • tarkista että syntynyt .jar ei ole yli 200KB. Jos on, on build.xml:ssä liikaa tavaraa.

  • tämä syntynyt .jar tiedosto pitää pakottaa erikseen lisääntymään Gitiin, koska muuten .jar on kielletty laittamasta sinne. Esimerkiksi (hakemistossa johon teit .jar):

     git add -f kerho.jar
     git commit -m "lisatty jar" 
     git push

“Exported with compile warnings:.. Main.java -”- ..Controller.java ja -“- ..Main.Java”

Koituuko tästä ongelmia?

VL: Jos se Jar toimii, niin ei.

10 Feb 21 (edited 10 Feb 21)

“This operation repacks referenced libraries” -varoitus tulee kun yrittää painaa “Finish”. Vaatiiko toimenpiteitä vai voiko ohittaa?

VL: Joo, anna mennä vaan. Matta katso ettei tuone build.xml:ää tule liikaa tavaraa.

23 Feb 21 (edited 23 Feb 21)

En saa jar-tiedostoa alle 100kb:ksi, ja build.xml:ssä jolla sen loin on vain Ali, Graphics ja fxgui

VL: No on se näköjään mullakin reilu 150 kB.

12 Feb 22 (edited 12 Feb 22)

Onko ohjeita miten Jar-tiedoston saa luotua IntelliJ Idea sovelluksella? Siellä ei anna muita export vaihtoehtoja kuin "selection to HTML" tai "Project to Eclipse". Onko jokin olennainen pala jäänyt asentamatta? Kyseessä M1 Mac jos vaikuttaa asiaan.

VL: Kopsin tekoälystä tuonne: https://tim.jyu.fi/view/kurssit/tie/ohj2/tyokalut/intellij#luojar Ne voisi kokeilla ja korjata ja tarkentaa.

Kokeilin ja toimii hyvin. Kävin hieman muokkaamassa ohjeita ja lisäsin selvennyksiä

11 Feb 24 (edited 11 Feb 24)
# jarajo

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, jotta ohjaaja voi helposti sitten kokeilla ohjelmaa.

Kun teen uuden .jar-tiedoston ja yritän ajaa tiedostonhallinnasta, niin heittää JNI errorin. Jos ajan komentokehotteelta niin ohjelma tulee ajettua, paitsi jos se on graafinen - silloin se heittää java.lang.NoClassDefFoundErrorin

04 Feb 20

Sama ongelma JNI errorin kanssa. Komentoriviltä tosin toimii kunhan vain syöttää moduulien sijainnin kuten tuossa alla.

VL: Ei niitä voikkaan ajaa muuta kuin komentoriviltä TAI tekemällä alla mainittu jw-komento ja assosioimalla se .jar-tiedostoihin. Silloin sen voisi ajaa klikkaamalla. Mutta tyytykää siihen, että ajatte komentoriviltä kuten pääteohjaus 1 vai mikä se oli.

06 Feb 20 (edited 15 Jun 21)

Koneella näkyy tämän kohdan jälkeen build.xml ja kerho.jar mutta gitistä ei löydy kuin build.xml. Ja kun bashilla yritän ajaa sitä, se heittää kaikenlaista ja seassa jotain "caused by: ClassNotFoundException: fi.jyu.mit.fxgui.comboboxchooser... ja jää jumiin.

VL: OK, se jar ei mene automaattsiesti Gitin, joten pakota se menemään noilla 9.1 lopussa olevilla ohjeilla (lisäsin ne juuri)

10 Feb 23 (edited 10 Feb 23)

golfkerho.jar komennolla komentorivillä antaa Java Virtual Machine Launcher virheilmoituksen: "Error: A JNI error has occurred, please check your installation and try again". Mitä pitäisi tehdä, että korjaantuu? Edlleen GitBashin puolella jää jumiin, jos yrittää javaw -jar golfkerho.jar komentoa ajaa. Gitiin tosin sain sen .jar-tiedoston, että jotain parannusta.

VL: ajas javaw sijaan java, niin näet virheilmoitukset. Tuo jni pitää varmaan katsoa ohjauksissa...

12 Feb 23 (edited 12 Feb 23)

Jos on tehty kurssin asetukset, niin myös JavaFX-ohjelmia voidaan ajaa tyyliin

java -jar kerho.jar

Windowsissa

javaw -jar kerho.jar

tekee sen, ettei jää odottamaan graafisen ohjelman sulkeutumista, mutta mahdolliset Javan virheviestit jää näkemättä. Eli kannattaa kokeilla molempia.

Jos ei ole omaa JavaFX tehty

Jos .jar käynnistetään ja mitään ei tule näyttöön, niin silloin kannattaa kokeilla niin, että javaw sijaan kirjoittaa java, jolloin käynnistyy ylimäärinen komentoikkunan jossa näkyy mahdolliset virheilmoitukset, jotka javaw jättää näyttämättä.

9.3 Uuden .jar tiedoston tekeminen

Uuden .jar-tiedoston tekeminen kun lähdekoodi on muuttunut:

  • 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

9.4 Ajettavan .jar tiedoston tekeminen komentoriviltä

Pakataan "käsipelissä" kurssin malliohjelma Jar-tiedostoksi:

lue: http://java.sun.com/docs/books/tutorial/deployment/jar/index.html

  1. Ensin tehdään tiedosto jossa kerrotaan mikä on pääluokka ja mistä löytyy kirjastot. Olkoon tiedosto esimerkiksi manifest.mf:

     Main-Class: kerho.Naytto
     Class-Path: Ali.jar
  2. Sitten luodaan .jar-tiedosto komennolla:

     jar cvfm kerho.jar manifest.mf kerho\*.class  
  3. Ohjelmaa ajavan pitää kopioida itselleen nyt samaan hakemistoon kerho.jar ja Ali.jar. Samoin samaan tiedostoon pitää kopioida mahdollisesti tarvittavat data-tiedostot. Ohjelma ajetaan komennolla:

     java -jar kerho.jar

    Tuon komennon voi kirjoittaa vaikka tiedostoon kerho.cmd (Windows) ja sitten ohjelman voi ajaa tuota tiedostoa klikkaamalla. Tai sitten pääte .jar voidaan assosioida tekemään tuo java-ajo.

9.5 Mallikerhon kääntäminen ja ajaminen komentoriviltä

  1. Haetaan kerho versionhallinnasta puhtaaseen hakemistoon:

     git clone https://gitlab.jyu.fi/tie/ohj2/kerhoja/kerho20/kerho8.git .
  2. Ajetaan java-kääntäjä (javac) (jos \devel ei ole samalla levyllä, lisää eteen tarvittaessa c: ja Mac/Linux muokkaa polkujen nimiä vastaavasti)

     javac -d bin -cp \devel\jar\Ali.jar;\devel\jar\fxgui.jar --module-path \devel\javafx\lib --add-modules javafx.fxml,javafx.controls,javafx.web src\fxKerho\*.java src\kanta\*.java src\kerho\*.java
  3. Siirretään käyttöliittymän tiedostot hakemistosta src hakemistoon bin

     copy src\fxKerho\*.fxml bin\fxKerho
     copy src\fxKerho\*.css bin\fxKerho
  4. Kokeillaan, että toimii

     java -cp bin;\devel\jar\Ali.jar;\devel\jar\fxgui.jar --module-path \devel\javafx\lib --add-modules javafx.fxml,javafx.controls,javafx.web fxKerho.KerhoMain
  5. Vaihdetaan hakemistoon bin ja kirjoitetaan tiedosto manifest.mf

     cd bin
     echo Main-Class: fxKerho.KerhoMain > manifest.mf
     echo Class-Path: . >> manifest.mf
  6. Puretaan tarvittavat kirjastot Ali.jar ja fxgui.jar hakemistoon bin

     jar xvf \devel\jar\Ali.jar 
     jar xvf \devel\jar\fxgui.jar 
  7. Luodaan ajettava jar-tiedosto

     jar -cfm ..\kerho.jar manifest.mf .
  8. Kokeillaan, että toimii

     cd ..
     java --module-path \devel\javafx\lib --add-modules javafx.controls,javafx.fxml,javafx.web -jar kerho.jar

    tai (jw.cmd)

     jw kerho.jar

9.6 Windowsin asettaminen ajamaan .jar tiedostoja

Periaattessa .jar -tiedosto ajetaan esim komennolla:

java -jar kerho.jar

Tämän komennon voi haudata vaikkapa kerho.cmd nimiseksi tiedostoksi, jolloin sitä klikkaamalla lähtee ohjelma käyntiin.

Toinen mahdollisuus on assosioida .jar-pääte antamalla järjestelmän valvojana avatulta komentoriviltä komennot:

assoc .jar=jar-file
ftype jar-file=java -jar %1

tai (Java 8)

assoc .jar=jar-file
ftype jar-file=javaw -jar %1

tai (Java 21)

assoc .jar=jar-file
ftype jar-file=javaw --module-path c:\devel\javafx\lib --add-modules javafx.controls,javafx.fxml -jar %1

mikäli halutaan ettei aukea ylimääräistä komentoikkunaa kun ohjelman ajetaan. Tämä toimii vain graafisille Java-ohjelmille, muut tarvitsevat tuon komentoikkunan.

10. Javadoc dokumentaatio

10.1 Javadoc dokumentaatio Eclipsellä

Muodosta dokumentaatio projektihakemiston doc kansioon.

Project/Generate Javadoc...
  ruksi projektisi nimi mutta käy sen alta poistamassa ruksi kaikista test-hakemistoista
Next
  ruksi kaikki jarrit
Next
  kohtaan Extra Javadoc options laita:
    -tag example:a:"Esimerkki" -encoding utf8 -docencoding utf8 -charset utf8 -cp .;c:\devel\jar\Ali.jar;c:\devel\jar\fxgui.jar --module-path c:\devel\javafx\lib --add-modules javafx.fxml,javafx.controls,javafx.web 
Finish

Yhtään omaa jar ei ole valmiina ja mun rekisteri sanoo että ei ole konfiguraatiota…
VL: näistä ei kannata välittää mitään ennenkuin ollaan niin pitkällä että on kunnolla koodia. Ja käytännössä tämä tehdään TIMissä cloonaamalla hakemisto sinne.

23 Jan 20 (edited 23 Jan 20)

10.2 Javadoc dokumentaatio komentoriviltä

  1. Hae dokumentoitava mallikerho versionhallinnasta

     git clone https://gitlab.jyu.fi/tie/ohj2/kerhoja/kerho20/kerho8.git .
  2. Luo Javadoc dokumentaatio kommenteista hakemistoon doc

     javadoc -d doc -tag example:a:"Esimerkki" -encoding utf8 -docencoding utf8 -charset utf8 -cp .;c:\devel\jar\Ali.jar;c:\devel\jar\fxgui.jar --module-path c:\devel\javafx\lib --add-modules javafx.fxml,javafx.controls,javafx.web .\src\kanta\*.java .\src\kerho\*.java .\src\fxKerho\*.java 2> error.log
  3. Lue tiedostoon error.log ohjatut virheilmoitukset

     type error.log

11. Muita temppuja

11.1 Oman kirjaston tekeminen

11.2 Interaktiivinen Java

  • Tämä ei tue toistaiseksi uudempia Javoja, joten kannattaneen unohtaa, debuggerilla saa tehtyä pitkälle samoja asioita.
  • 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

DrJava näyttäisi ainakin minulla jumittavan Eclipsen.

09 Nov 17

11.3 Turhien varoitusten väliaikainen poistaminen

11.4 Pikanäppäimet

Eclipsessä Alt + Shift + S, kun Java-luokka valittuna.

  • Override/Implement Methods... ja toString()
  • Generate Constructor using Fields...
  • Generate Getters and Setters...

Eclipsessä Alt + Shift + W, kun hakemisto valittuna.

  • System Explorer

Eclipsessä F3 aliohjelmakutsun kohdalla.

  • Open Declaration

12. Eclipse ja tavukoodin tutkiminen

Joskus on kiva katsoa miltä näyttää käännetty tavukoodi:

  • joskus voi riittää että Eclipsellä vain avaa .class -tiedoston ja katsoo sitä -toisaalta joskus voi olla kiva että on parempi integrointi koodiin, yksi toimiva plugin on esim: http://andrei.gmxhome.de/bytecode/index.html

13. Vanhemmat käyttikset ja versiot

13.1 Eclipse ja Vista 64 ja Windows 7 64 bit

  • Enää ei pitäisi olla mitään erityisiä ongelmia 64 bittisyydenkään kanssa.
  • Vanhoista ongelmista ks: https://korppi.jyu.fi/kotka/servlet/list-archive/ohj08k/0144.html
# macvanha

13.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.

"Download painikkeen" alla on linkki "Download Packages". Klikkaa sitä ja pääset sivulle, josta tuon "Eclipse IDE for Java Developers" -version saa ladattua zippinö. Pura zip ja siirrä Eclipse.app Ohjelmat (Applications) hakemistoon. (En tykkää installereista, joten itse teen Ecluosen asennuksen aina näin.) -ji

18 Apr 17

14. 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.

Kumpikaan näistä linkeistä ei taida enää ohjautua toivottuun paikkaan.

09 Jan 21

Hitaus johtuu vähäisestä määrästä varattua muistia Eclipseä käynnistettäessä. Asiaa on selitettty kohdassa "Vinkkejä". Ohjeet muistimäärän vaihtamiseen löytyvät sivustolta http://wiki.eclipse.org/Eclipse.ini

30 Nov 21 (edited 30 Nov 21)

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.