Ohjelmointi 2-kurssin työkaluja

Asennusurakka kannattaa ehkä tehdä useammassa palassa. Alla on taulukko, johon voit ruksia miten urakkasi edistyy. Vaikka taulukossa on linkit suoraan ko asennuksen ohjeisiin muistinvirkistykseksi, niin kulje silti tämän dokumentin lukuja huolella läpi, äläkä oikaise missään. Siitä seuraa vaan ongelmia :-) Sama taulukko löytyy sitten itse asennussivuilta, joissa voit sitä myös ruksia. Asennussivuilla on sanottu ✅ -merkillä milloin saat ruksia jonkun kohdan tehdyksi.

Ainakin seuraavat asennetaan aluksi:

  • GIT komentoriviversio
  • Java JDK 21.0.1 + oma jdk-21-JavaFX
  • Eclipse 2023-12 tai IntelliJ IDEA
  • JavaFX + SceneBuilder

Suurimmaksi osaksi asennuksista on kyse siitä, että tiedostoja puretaan ja sijoitetaan sopiviin paikkoihin. Eli siinä mielessä asennusten pitäisi olla kohtuullisen "helppoja", kunhan on tarkkana eikä ohita mitään. :-)

Ennen asennusten aloittamista varmista, että jos käytät Windowsia, niin

  1. Windows Explorerissa on asetettu KAIKKI tiedostopäätteet näkyviin.

    Tiedostopäätteet näkyviin
    Tiedostopäätteet näkyviin

HUOM! Älä "sooloile" hakemiston nimissä ellet ole "ammattilainen". Eli käytä ohjeissa ehdotettuja, ellet ole 101% varman mitä teet. Äläkä missään nimessä laita mitään hakemistoihin, joiden nimissä on skandeja tai välilyöntejä!

Asenna tavallisena käyttäjänä ja tarvittaessa anna admin lupa jos pyytää.

# asennusurakka

Asennusurakka

# asennusedistyy20
# asennusongelma20

Alla kussakin kohdassa on asennukset myös videoina ja samat videot ovat myös vastaavilla asennussivuilla. Videoissa aina sattuu pieniä lipsahduksia ja johonkin tulee väärä arvo tai joku unohtuu tehdä, joten aina pitää seurata itse tekstiä, johon on kirjoitettu/korjattu oikeat "sanat".

Linkeissä video -sanasta saat auki videon ja kirjan kuvan kirja jälkeen olevasta linkistä pääset tekstuaaliseen selitykseen. Vaikka katsoisitkin videon, mene aina samalla sanalliseen selitykseen, koska siinä voi olla korjattu videossa tulleita virheitä. Ja jos menet pelkästään sanalliseen selitykseen ja tulee virheitä, niin katso ainakin sitten video.

Jos tarvitset vielä videoiden lisäksi jostakin selventävän kuvan, niin laita kommentti siihen kohtaan dokumenttia mihin kuva tarvittaisiin. En hirveästi haluaisi kuvia laitella, kun ne menevät nykyisilä ohjelmien kehitystahdeilla 2 viikossa vanhoiksi :-( Tekstiä on helpompi muuttaa.

  • Alla on 2h videota kun yhteen M1 Maciin asennettiin työkalut. Jos joku haluaa auttaa, niin tuosta voi ilmoitella minuuttilukuja pistettäväksi sopiviin kohtiin itse ohjeisiin. Muutaman pätkän jo laitoinkin.

1. Yleistä asennusohjeista

Jos jollakin sivulla on unohtunut erikseen mainita mikä on Macin tai Linuxin vastaava hakemisto, niin käytä seuraavia "muunnoksia":

Win: c:\devel
  GitBash: /c/devel 
  Mac:     /Users/Anonymous/devel     
  Linux:   /home/Anonymous/devel
 
Win: c:\kurssit
  GitBash: /c/kurssit
  Mac:     /Users/Anonymous/kurssit
  Linux:   /home/Anonymous/kurssit

Toki voit tuon kurssit korvata jollakin muullakin sanalla, esim opinnot tms. Kunhan teet saman huolella sitten kaikissa kohdissa.

Jos käyttäjätunnuksesi omalla koneellasi on muuta kuin Anonymous, niin käytä sitä tuon Anonymous sijaan kaikissa hakemistopoluissa.

Videoista voi joskus puuttua tekstissä oleva devel-hakemisto. Eli kannattaa seurata aina tekstiä, koska siihen on helpompi tehdä korjauksia. Samaten videoissa voidaan puhua versiosta 17 mutta nyt pitää käyttää vastaavassa kohtaa 21. Ja tämän päälle voi olla enemmän tai vähemmän desimaaleja.

# mynameandmytemp20

Jos jossakin käsketään avamaan Window/Preferences Eclipsessä, niin Macissä vastaava löytyy Eclipse/Asetukset...

# kayttis20

2. Java Development Kit

Javaa varten tarvitaan sekä Java-tulkki (JVM, Java Virtual Machine, ajoympäristö) että kehitysympäristö (JDK, Java Development Kit, jonka nimi on välillä ollut SDK, siksi jotkut linkit ovat SDK-nimisiä). JDK:n asentamalla tulee sekä ajoympäristö että kehitysympäristö. Tämän lisäksi tarvitaan vielä joku hyvä IDE, jossa ohjelmia kirjoitetaan. Kurssilla käytetään Eclipse-nimistä IDE:ä.

Aluksi tehdään JDK jonka mukana on graafisten ohjelminen tekemistä varten JavaFX-kirjaston vaatimat modulit.

Aloita asennusurakkasi tästä!

  • Windows:
  • Mac
  • Linux:

3. Eclipse + JavaFX + SceneBuilder

Kun olet asentanut Java JDK:n, tarvitset seuraavaksi ohjelmointiympäristön, joka tällä kurssilla on Eclipse. Eclipse on Ohjelmointi 1 -kurssilta tutun Visual Studion lailla monipuolinen IDE (Integrated Development Environment) mm. Java-ohjelmien tekemiseen.

Vaihtoehtona Eclipselle on JetBrainsin IntelliJ IDEA. Jatkossa tästä saattaa tulla kurssin pääIDE, jos Ohj1 kurssilla ruvetaan käyttämään saman valmistajan Rider-IDEä. Innokkailla kokeilijoille suositellaan IntelliJ IDEAn käyttöä. Sen asentamiseksi löytyy omat ohjeet.

Muille Eclipse voi vielä olla varmempi vaihtoehto koska kaikki kurssin ohjeet on tehty Eclipselle.

Graafiset käyttöliittymät puolestaan luodaan Eclipseen tai IntelliJ IDEAan asennettavalla JavaFX:lla, ja SceneBuilderilla.

Muista videoista että ne on tehty Javan version 17 aikaan, eli numeroita pitää soveltaa nykyisen version () mukaan. Siksi ehdottomasti pitää seurata tekstiä samalla kun videoita katselee. Tekstiä päivitetään enemmän tilanteen mukaan.

  • Windows:

Kohdan 1:50 tietämillä vaihdetaan compiler compliance level kohdasta 11 kohtaan 17. Minä vaihdoin sen itselle kohtaan 21. Eli oletuksena se oli minulla kohdassa 17. Varmaan muillakin.

08 Jan 24 (edited 08 Jan 24)
  • Intel Mac, Eclipse + muuta asennukset:

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: videota pätkittynä (voi soveltaa aika pitkälle myös Intel Mac):



Ohjeita edellisiin, tutustu näihin sitten sitä mukaa kun tarvitset:

Tähän loppuu asennusurakka tällä kertaa. Seuraavat luvut kertovat yleistä työkaluista. Niitä voit lukea kun tarvitset lisätietoa.

# kurssinJar

4. Kurssin .jar-paketteja

Nämä tulikin asennettua jo em. asennusohjeissa. Tässä luvussa vaan puhutaan niistä yleistä ja kerrotaan mistä voit tarkistaa niiden version ja mistä löydät niiden käyttöohjeita.

TODO: kirjoita tähän ohje miten saa itselleen skriptin joka päivittää uusimmat tiedostot käyttäjän koneelle.


Mac/Linux käyttäjät (by jeantoff)

Skripti, joka lataa tiedostot:

  • Ali.jar, fxgui.jar, Graphics.jar, Music.jar (yhteen kansioon)
  • comtestplug_1.0.13.jar, FXMLpackage_1.0.0.jar (toiseen kansioon)

Ohjeet:

  • Lataa itsellesi wget (paketinhallintatyökalulla)
  • Kirjoita bash skripti joka hyödyntää wget sovelluken -N ja -S optioita
  • Voit katsoa mallia tai kopioida skriptin load_jars_dropins
  • Jos kopioit skriptin, muuta tiedoston alusta jpath ja dpath muuttujat omien tiedostopolkujesi mukaisiksi
  • Tallenna skripti koneelle ja suorita se bash tiedostonimi tai lisää siihen suoritusoikeus ja aja se (suoritussijainnilla ei ole väliä)

Javan luokat (class) paketoidaan Java Archive (jar) -paketteihin, jotka ovat oikeastaan .zip-tiedostoja eri päätteellä. Näin useita luokkia voidaan helposti kuljettaa yhdessä paketissa.

Näitä tarvitset kurssin aikana.

Mistä tai millä hakusanoilla voi lähteä "tyhjästä" etsimään opasta tämän skriptin rakentamiseen? Olen nähnyt aiemmin niitä eri ympäristössä eli windows-palvelimella olevassa sql-moottorissa. Eli kun sql.n avasi palvelimella niin sitten vian lyhyt skripti muistaakseni vain aika suoraviivaisesti korvasi jossain kirjastossa olevat tiedostot ja sen jälkeen vielä päivitti päälle ne location-tiedot uudestaan. Mutta tallentuvatko ne samaan paikkaan vai eri paikkoihin eclipsessä? Windowsin puolella ensin tiedostot ja eclipsen puolella location? Voiko koko skriptin hoitaa eclipsen puolella? Kun uusimpien tiedostojen haku komentorivillä esim käynnistettäessä bat-tiedostona ei paljon auta jos lokaario samalla korvautuu - vai säilyttääkö eclipse lokaation ja ei edes tiedä, että tiedosto alla vaihtuu?


VL: esim siitä edeltä linkittämästäni Ohj1:n esimerkistä voi lähteä liikkeelle. Yksi avainsana on PATH, eli hakupolun asettaminen Windowsissa. Tuolta Ohj1:n luennoista: videoiden hakemisto voi katsella komentoriviin liittyviä videoita. Jos komentorivi ei ole tuttu, suosittelen ainakin Ohj1:n alkukurssin videoiden katsomista.

07 Jan 20 (edited 04 Jan 23)
  • seuraavissa linkeissä:

    • .jar-linkki vie .jar-tiedoston lataamiseen
    • pvm-linkki vie versionhallintaan, josta näet uusimman version päivämäärän, jos se ei ole tähän päivitetty
    • ohjeet-linkki vie luonnollisesti ohjeisiin, jotka kannattaa ottaa talteen kirjanmerkkeihin. Ohjeita tarvitaan sitten kun aletaan koodaamaan.
    • muut paitsi FXMLPackage.jar ja ComTest.jar tallennetaan sovittuun jar-kansioon, esim C:\devel\jar.
# jarpvm
  • FXMLPackage.jar (30.12.2018) - plugin helpottamaan JavaFX-projektien luontia. Ei laiteta projekteihin mukaan (ei siis jar-kansioon) vaan lisätään Eclipsen dropins-kansioon, ks. ohjeet.

Näistäkin voi olla apua (ei kiire, mutta tuli tuolla videolla otettua ali.jarin kanssa samalla):

Vanhempaa Swingiä käyttäville (useimmat eivät tarvitse)

5. Tekstieditori

6. Versionhallinta: Git

Kurssin harjoitustyö tallennetaan Gitiin vuonna 2024.

Git on hajautettu versiohallintaohjelmisto. Versionhallintaohjelmiston ideana on tarjota säilytyspaikka yhteisesti käytettävälle tiedolle ja pitää kirjaa tietoon tehdyistä muutoksista. Ohjelmistotyössä ollaan yleensä pisimmällä tiedon yhteiskäytössä.

7. Versionhallinta: SVN

Tämän voit ohittaa!

Kurssin harjoitustyöt ennen vuotta 2020 tallennettiin kurssin SVN:ään.

  • <>

SVN (eli SubVersioN) on versiohallintaohjelmisto. Versionhallintaohjelmiston ideana on tarjota säilytyspaikka yhteisesti käytettävälle tiedolle ja pitää kirjaa tietoon tehdyistä muutoksista. Ohjelmistotyössä ollaan yleensä pisimmällä tiedon yhteiskäytössä.

Muuta:

8. JavaDoc

JavaDoc: Kurssin kaikki ohjelmat (demot ja harjoitustyöt yms.) kommentoidaan hyvien JavaDoc periaatteiden mukaisesti.

9. JUnit

JUnit on testauskehys yksikkötestaamista varten.

10. ComTest

ComTest on tietotekniikan laitoksen opettajien ja tutkijoiden projekti yksikkötestauksen helpottamiseksi.

Ei käytetty JavaFX aikaan enää:

11. Profilointi

Profiloimalla näkee missä ohjelman suoritusaika kuluu

  • Tuota VisualVM voisi joku kokeilla ja raportoida tekeekös sillä mitään
  • TPTP oli ihan OK työkalu, mutta se lopetettiin ja nyt kaikki hyvät näyttävät olevan kaupallisia...

12. Testikattavuus

Testikattavuustyökaluilla voidaan tutkia mitkä kaikki ohjelman osat on ajettu

13. ViLLE

  • ViLLE on ympäristö mm. Javan kertaamiseen

14. Tauno

  • Tauno on ympäristö taulukkoalgoritmien harjoitteluun

15. Mobiili Java

  • Java ME ohjelmointikurssilla (käytännössä ei enää käytössä)
  • Android ohjelmointi

16. WindowBuilder (vanhempi vaihtoehto JavaFX:lle)

Jos haluaa, voi JavaFX:än ja SceneBuilderin sijaan käyttää Swingiä ja WindowBuilderia, joka on Eclipse IDEen käyttöliittymän suunnittelutyökalu. Tätä ei tarvita paljoa vuoden 2015 jälkeen, ei tarvitse asennella heti (ja ehkä ei lainkaan).

17. Muita työkaluja

  • NetBeans ja IntelliJ IDEA ovat Eclipsen kaltaisia ilmaisia Java-kehitysympäristöjä.
  • Heksa-editoreja
  • RegExp:
    • regex101.com Hyvä sivu tehdä ja kokeilla regexpejä.
    • RegEx Coach Siisti Windows-sovellus regexpien kokeiluun
    • RegexPlanet yksinkertainen regexpien web-kokeilutyökalu
    • Regexper Regexpien visualisoija
    • Debuggex Hieno regexp-askeltaja
    • Bytecode - - Plugin, jolla voi katsoa miltä käännetty tavukoodi näyttää
  • vars.js - kurssia varten tehty tekstipohjainen piirtotyökalu
  • Ohj 1 kurssin komentorivimateriaali
  • Draw.io - vektorigrafiikan piirtotyökalu netissä, voi piirtää HT4 vaiheen kuvan
  • Visio - vektorigrafiikan piirtotyökalu jolla voi piirtää mm. HT4 vaiheen kuvan
  • WSL - Yhteensopivuuskerros Linux:in ja Windowsin välillä. WSL:n avulla voi asentaa esimerkiksi bash - komentotulkin, milllä voi ajaa Linux - ohjelmistoja natiivina Windowsin päällä.
  • Zeal - Offline dokumenttiselain. Dokumenttiselaimeen voi ladata minkä vain modernin ohjelmointi-, tai skriptikielen kirjastot.

Olisiko tarkempia ohjeita tuon Vision löytämiseksi? Kirjauduin OnTheHubiin sisälle ja etsin, lopulta löysin itseni Microsoft Azuren sivuilta, mutta sitten meni sekavaksi. Näillä ohjeilla toimiminen ei siis etsintä tuottanut tulosta.

14 Feb 19

VL: Onko kukaan onnistunut löytämään? Kertokaa muillekin jos olette!

14 Feb 19

18. C/C++ kurssin työkaluja

20. Kurssin materiaalia

21. Etäyhteys mikroluokkiin

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