Ohjelmointi 2-kurssin työkaluja
- Course in english
- Java-pikasyntaksi - lyhyesti Javan syntaksia
- kysymyksiä ja vastauksia
- Sanasto
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 22.0.2 + oma jdk-22-JavaFX
- Eclipse 2024-09 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
Windows Explorerissa on asetettu KAIKKI 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ää.
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 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 22
. Ja tämän päälle voi olla enemmän tai vähemmän desimaaleja.
Jos jossakin käsketään avamaan Window/Preferences
Eclipsessä, niin Macissä vastaava löytyy Eclipse/Asetukset...
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:
- Java JDK-asennus
- videoista katso ohjeita soveltaen Mac tai Win videoita
- Lisäluettavaa sitten kun haluaa debugata Eclipsen ulkopuolella: Debuggaus komentoriviltä
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.
—- 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.
—- Apple M1: videota pätkittynä (voi soveltaa aika pitkälle myös Intel Mac):
- Linux:
- Eclipsen asentaminen
- JavaFX-asennus
- SceneBuilder
- videoista katso ohjeita soveltaen Mac tai Win videoita
Ohjeita edellisiin, tutustu näihin sitten sitä mukaa kun tarvitset:
- Eclipsen ja debuggerin käyttöohjeita - pääteohjauksessa 3
- SceneBuilder käyttöohjeita
- JavaFX:n käyttöohjeita
Tähän loppuu asennusurakka tällä kertaa. Seuraavat luvut kertovat yleistä työkaluista. Niitä voit lukea kun tarvitset lisätietoa.
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
jadpath
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.
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
jaComTest.jar
tallennetaan sovittuunjar
-kansioon, esimC:\devel\jar
.
- FXGui.jar (2.4.2018) - apukomponentteja käyttöliittymän suunnitelman tekoon. ks. ohjeet ja dokumentaatio
- Ali.jar (11.4.2018) - aliohjelmia merkkijonojen (Mjonot) ja tiedostojen käsittelyyn, ks. ohjeet ja dokumentaatio
- FXMLPackage.jar (30.12.2018) - plugin helpottamaan JavaFX-projektien luontia. Ei laiteta projekteihin mukaan (ei siis
jar
-kansioon) vaan lisätään Eclipsendropins
-kansioon, ks. ohjeet.
- ComTest-plugin (25.12.2019) - Eclipse-plugin yksikkötestaamisen helpottamiseksi.
Ei projektiin vaan Eclipsendropins
-kansioon, ks. ohjeet.
Näistäkin voi olla apua (ei kiire, mutta tuli tuolla videolla otettua ali.jar
in kanssa samalla):
- Graphics.jar (8.6.2018) - kirjasto piirtämiseen ks. ohjeet
Vanhempaa Swingiä käyttäville (useimmat eivät tarvitse)
5. Tekstieditori
- Jokin hyvä tekstieditori on aina hyvä olla koneessa
6. Versionhallinta: Git
Kurssin harjoitustyö tallennetaan Gitiin vuonna 2024.
- Kurssin Git-palvelin gitlab.jyu.fi
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ä.
- Ohjeet: SVN:n käyttö Ohjelmointi 2 -kurssilla
- svnht asentaminen omaan koneeseen (ohjeet ja video)
Muuta:
- yleisen ohj2-repositoryn selailu
- vuoden 2019 repositoryn selailu
- Aikaisemmat vuodet 2018 2017 2016 2015 2014 2013
8. JavaDoc
JavaDoc: Kurssin kaikki ohjelmat (demot ja harjoitustyöt yms.) kommentoidaan hyvien JavaDoc periaatteiden mukaisesti.
10. ComTest
ComTest on tietotekniikan laitoksen opettajien ja tutkijoiden projekti yksikkötestauksen helpottamiseksi.
Ei käytetty JavaFX aikaan enää:
- GUI-testaus LIFT-kirjastolla (Swing)
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
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).
- TJTA104 kurssin ohjeistus WindowBuilderin käyttöön
- WindowBuilderin käyttö
- WindowBuilderin asennus
- gui -luokkia Swing-käytön helpottamiseksi
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
- ks kurssia varten piirtotyökalut
- 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.
—VL: Onko kukaan onnistunut löytämään? Kertokaa muillekin jos olette!
—18. C/C++ kurssin työkaluja
- ks kurssin sivuilta.
19. Linkkejä
- Interaktiivisia HTML-ohjelmointisivuja
- Pex4Fun - C#, VisualBasic ja F# interaktiivisia pulmia
- AppInventor - Android Tutoriaaleja
- Java 8 uudet ominaisuudet
- It’s time! Migrating to Java 11
- From Java 8 to Java 11 – Quick Guide
20. Kurssin materiaalia
- Luentomoniste, vanha pdf
- Kurssin kotisivut
- Kurssin malliohjelma
- Kurssin ali-hakemisto
- HTML-haavoittuvuudet - Korpin ohjeita HTML haavoittuvuuksien välttämiseksi
- Luentovideot - kurssin luennot
21. Etäyhteys mikroluokkiin
- katso ensin vapaa kone Mountains tai Lakes-luokasta.
- Katso tarkempia käyttöohjeita
- Käyttöliittymä etäkäyttöä varten Linuxiin
22. Muunnoskurssit
23. Demot
24. Tentit
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.