JDK (Java Development Kit)

TODO: Videoilla ohjeet on Java 17 varten! Käytä kuitenkin aina 21 sen tilalla jos versio on suurempi.

# asennusurakka

Asennusurakka

# asennusedistyy20
# asennusongelma20

Kurssin työkalukimaran asentaminen aloitetaan varmistamalla, että koneessa pyörii sopiva JDK.

Termejä:

  • JDK = Java Develoment Kit, Javan kehitysympäristö. Tämä pitää olla että voi kääntää Java ohjelmia (.java). Täältä löytyy esimerkiksi Java-kääntäjä javac.
  • JRE = Java Runtime Environment, Javan ajoympäristö, Java tulkki. Tämä pitää olla jotta voi ajaa Java-ohjelmia (.class, .jar). Tämän asentuu JDK:n mukana, joten ei tarvitse asentaa erikseen.
  • JavaFX = graafisen käyttöliittymänkirjasto, jossa käyttöliittymän ulkoasun voi kirjoittaa .xml:'' muistuttavalla .fxml-kielellä. Jossakin vaiheessa JavaFX tuli suoraan Javan mukana, mutta pudotettiin sitten pois. Aloitamme omissa asennuksissa luomalla uuden JDK-paketin jossa on taas JavaFX mukana.
  • c:\MyTemp = oletetaan että omat työt tehdään tähän kansioon. Tämä on lähinnä historiallinen nimi kun yliopiston mikroluokissa oli aina tämän niminen hakemisto. Tämän voi korvata millä tahansa nimellä, esim c:\kurssit tai c:\opinnot tms. Kunhan ei käytä hakemistojen nimiä, missä on skandeja tai välilyöntejä. Mac ja Linux vastaavasti ~/MyTemp tai ~/kurssit tms. Eli mitä haluaakin käyttää tämän vastikkeena kurssilla, niin se kannattaa luoda nyt aluksi. Jos on useampi levy, niin kannattaa käyttää muuta levyä kuin c:-levyä.
  • c:\devel = Windows käyttäjille suositeltu kansio sijoittaa kaikki kurssin työkalut (huomaa että nimi on lyhenne sanasta development, eli siinä EI ole numeroita!). Helpottaa ohjeita jos kaikki laittavat samanalaiseen hakemistoon. Mac ja Linux vastaava voisi olla ~/devel.

Alta löydät asennusohjeet niin Windowsille, Macille kuin Linuxille.

Jos jokin on epäselvää tai käytäntö poikkeaa ohjeesta, kommentoi toki marginaaliin tai tee täsmennyksiä itse ohjeeseen.

# asentaminen

1. Asentaminen

Ainakin Windowsissa voi olla varmin veto ensin poistaa kaikki Javat, jotta ei tule ristiriitaa eri Java-versioiden kanssa. Tosin oikein asetettujen ympäristömuuttujien kanssa tätä pystyy hallitsemaan ilmankin poistoja. Kokeile ensin onko Javaa asennettuna komennolla:

    java -version

Vanhan version vaihto:

Jos esimerkiksi teet uutta asennusta vanhan asentamasi version 17.0.1 tilalle ja vaihdat versioon 21.0.1 niin tee ensin tuhoa hakemisto jdk-17-JavaFX
Sitten jatka käyttöjärjestelmäsi JDK-asennusohjeilla. Uusi jdk-17-JavaFX syntyy jlink-komennon yhteydessä ja jos vanhat polut yms oli laitettu tuohon, niin silloin niitä ei tarvitse enää säätää. Samoin Eclipsen asennukset pitäisi toimia suoraan.

# win_asentaminen

1.1 Windows (JDK+JavaFX), Command Prompt

Selvitä aluksi onko Windows versiosi 32- vai 64-bittinen. Windows on 64-bittinen, mikäli löytyy hakemisto:

C:\Program Files (x86)

Nykypäivänä on äärimmäisen epätodennäköistä että koneesi olisi 32 bittinen.

12 Jan 21
  • Mikäli tätä ei löydy, sinulla on vain 32-bittinen Windows, jolloin joudut tyytymään Java 1.8:aan. Kurssin asiat saa tehtyä silläkin. Sen voi ladata jdk8-sivulta.

Muut voivat asentaa Java JDK jdk-21.0.1. Versionumero voi olla muukin kuin jdk-21.0.1, eli tee mielessäsi tarvittavat muutokset ohjeisiin jos versionumero on eri.

Vinkki: valitse resurssihallinnasta View/File name extensions.

  1. Avaa selaimella lataussivut

    1. Lataa jdk-21.0.1 kohdasta Windows/x64
    2. Lataa openjfx-21 kohdasta Windows/x64/jmods (ole todella tarkkana että oikea nimi! Eli Windows, 64 bit, mods) Huom! Jos virallinen versio on jo isompi, saadaksesi oikean version openjfx-21 sinun tulee painaa täppää 'include older versions' ja valita dropdown-valikosta oikea versio!
  2. Pura molemmat hakemistoon C:\devel (huomaa lyhenne sanasta development, ei lopu numeroon)

    1. klikkaa hiiren oikealla zip-tiedostoa
    2. Extract All...
    3. \devel
    4. Extract
  3. Varmista, että sinulla on seuraava hakemistorakenne (jos javafx-jmods-21-kansion nimen perässä on alanumeroita kuten 21.0.2.1 niin poista alanumerot pois nimeämällä kansio uudelleen)

     C:\devel\jdk-21.0.1
        bin
        conf
        ...
     C:\devel\javafx-jmods-21
        javafx.base.jmod
        ...
  4. Avaa komentorivi järjestelmänvalvojana (eli klikkaa oikealla cmd-ikonia ja valitse sieltä) ja siirry hakemistoon C:\devel (huom, jos käytäg GitBashia, niin muista että \ tilalla komennoissa on / ja c:\ tilalla on /c/)

     cd C:\devel
  5. Tee kustomoitu JDK, joka sisältää JavaFX:n moduulit

     jdk-21.0.1\bin\jlink --module-path javafx-jmods-21 --add-modules java.se,javafx.fxml,javafx.web,javafx.media,javafx.swing,jdk.jshell --bind-services --output jdk-21-JavaFX
  6. Lisää polkuun ensimmäiseksi kustomoidun JDK:n asennushakemiston bin-polku (muuten esim. komento javac tai jshell ei toimi). Windowsissa (katso myös ympäristömuuttujat):

    1. Kirjoita komentoriviltä control (suom. Ohjauspaneeli)

    2. System (suom. Järjestelmä)

    3. Advanced system settings (suom. Järjestelmän lisäasetukset), Windows 11: kirjoita hakusanaksi tämä (kielestä riippuen)

    4. Environment Variables (suom. Ympäristömuuttujat)

    5. Etsi System variables kohdasta Path, jos ei ole, luo sellainen

    6. Edit (suom. Muokkaa)

    7. New

    8. Lisää rivi:

      C:\devel\jdk-21-JavaFX\bin
    9. Pidä huoli että tuo nousee koko listan ylimmäksi, eli paina Siirrä ylös riittävän monesti.

    10. OK riittävän monesti

    11. Käynnistä uusi komentorivi

    12. Kun kirjoitat komentoriviltä path pitäisi tuon näkyä ensimmäisenä:

      C:\kurssit\ohj2\ohj2>path
      PATH=C:\devel\jdk-21-JavaFX\bin;C:...
  7. Lisää/korjaa JAVA_HOME (tarvittaessa katso):

    1. Kirjoita komentoriviltä control (suom. Ohjauspaneeli)

    2. System (suom. Järjestelmä)

    3. Advanced system settings (suom. Järjestelmän lisäasetukset)

    4. Environment Variables (suom. Ympäristömuuttujat)

    5. Etsi user variables kohdasta JAVA_HOME, jos ei ole, luo sellainen

    6. Edit (suom. Muokkaa)

    7. Lisää/muokkaa rivi:

      C:\devel\jdk-21-JavaFX
    8. OK riittävän monesti

    Tarkista myös System variables että siellä ei ole JAVA-HOME tai siellä on samat arvot.

Muista suorittaa komentorivi järjestelmänvalvojana

10 Jan 22

kun laitan komentoriville ton pitkän komennon niin tulee lukemaan "bash: jdk-19.0.1binjlink: command not found ". mikä avuksi?

VL: bash-shellissä pitää antaa /-viivoilla noita hakemistoja. Ks mallia Linux ohjeiden puolelta, mutta sovella niin että hakemiston on /c/devel

15 Jan 23 (edited 15 Jan 23)
# toimiiwin

1.2 Mistä tiedän että toimii

  1. Kirjoita komentoriville

     java --version
  2. Tulostuuko komentoriville?

     openjdk 21.0.1 2023-10-17
  3. Kirjoita komentoriville

     java --list-modules
  4. Tulostuuko komentoriville mm seuraavat (ja @versionumero perään)?

     javafx.base
     javafx.controls
     javafx.fxml
     javafx.graphics
     javafx.media
     javafx.swing
     javafx.web

--list-modules eikä java --version ei toimi, ja jos haen where java ei se löydy niin kuin videolla, develissa path kyllä löytää jdk ensimmäisenä
Tuplacheckkaa viela PATH, että varmasti täysin samalla tavalla, kuin ohjeessa. Kokeile myös käynnistää komentorivi uudestaan. Jos ei ratkea, niin pääteohjauksesta apua. OH

21 Sep 22 (edited 21 Sep 22)

Varmista, että tulosteessa versionumero on 21.0.1. Jos koneessa on vanhempi Java asennettuna, käy poistamassa siihen osoittava polku ympäristömuuttujista.

Jos antaa väärän version, niin komennolla:

where javac

näkee mistä polusta javac-käynnistyy.

Mitäs jos javani onkin version "1.8.0_271"?

VL: Silloin asennukset eivät ole menneet oikein. Sulla ei ole tuolla ylempänä tehty polkuasetus mennyt oikein. Käynnistitkö uuden komentoikkunan noiden jälkeen?

08 Jan 22 (edited 08 Jan 22)

Haittaako jos versionumeroksi tulee 18.0.2.1?
Kunhan moduulit löytyvät, ei tuon pitäisi haitata! OH

21 Sep 22 (edited 22 Sep 22)

1.3 jshell

Kokeile myös seuraavaa (kirjoita aina väkäsen > perässä oleva teksti):

C:\kurssit\ohj2\demo1>jshell
|  Welcome to JShell -- Version 21.0.1
|  For an introduction type: /help intro

jshell> System.out.println("Hello")
Hello

jshell> /exit
|  Goodbye

Nyt saat ruksia asennetuksi kohdan: Java JDK.

Komennosta jshell voit lukea lisää Oraclen dokumentatiosta.

Kokeile myös kohta 2. Käyttäminen komentoriviltä.

1.4 macOS

1.4.1 JDK 21.0.1

Macissä pitää ensin selvittää onko prosessori Intel vai M1:

  • vasemmasta ylänurkasta Apple ikoni
  • Tietoja tästä Macista
  • Järjestelmäpiiri tai Prosessori ja siinä lukee joko Intel jotakin tai Apple M1
  • Muista tämä jatkossa Intel vai M1

Helpompi tapa voisi olla ensin asentaa Hombrew sivustolta

https://brew.sh/index_fi

ja sitten asentaa OpenJDK komennolla

brew install openjdk
07 Jan 22 (edited 07 Jan 22)
  1. Hae JDK Java-sivulta

    • Valitse JDK 21 oikean käyttiksen kohdalta Intel: (macOS/x64), M1: (macOS/Aarch64)
  2. Tuplaklikkaa ladattua tiedostoa ja se purkautuu Lataukset- kansioon (Downloads lontoonmurteella tai komentoriviltä)

  3. Avaa terminaali ja anna komennot

    cd ~/Downloads       
    sudo mv jdk-21.0.1.jdk /Library/Java/JavaVirtualMachines/

    Merkki ~ tulee Macissa Suomi-näppäimistöllä (layoutilla) option+¨ , ¨ löytyy å-kirjaimen oikealta puolelta, ja Suomi - laajennettu -näppäimistöllä option+k tai option+command+¨ taioption+k ja välilyönti. Vanhoissa koneissa option-näppäin (⌥) voi olla nimetty alt-näppäimeksi.

  4. Jos sanoo "operation not permitted" tee seuraavat (lyhennetty sivulta fix-operation-not-permitted-terminal-error-macos):

    • Valitse vasemmalta ylhäältä apple-logo ja sieltä Järjestelmäasetukset.
    • macOS Sonoma (14) ja uudemmat: Valitse Tietosuoja ja suojaus ja sieltä "Koko levyn käyttö"
      • Oikealla puoliskolla ikkunassa voi olla ohjelmia, niiden alla on painikkeet + ja -, paina +. Tunnistaudu, kun käyttöjärjestelmä sitä pyytää (sormenjälki tai salasana).
    • Vanhemmat macOS-versiot: Valitse suojaus ja yksityisyys ja sieltä koko levyn käyttö.
      • Paina alhaalta vasemmalta lukon kuvaa ja avaa se, että voit muokata asetuksia. Paina sitte +-merkkiä.
    • Etsi tiedostovalitsijasta "Apit"-kansiosta "Lisäapit" ja sieltä "Pääte" ja paina Avaa.
    • Katso että "Pääte" on valittuna ja poistu. Kokeile kohtaa 3 uudestaan.
  1. Jos tulostaa tyyliin (tietysti nykyisillä versionumeroilla 21.0.1):

     ohjmac:~ vesal$ java --version
     openjdk 21.0.1 2021-10-19
     OpenJDK Runtime Environment (build 21.0.1+12-39)
     OpenJDK 64-Bit Server VM (build 21.0.1+12-39, mixed mode, sharing)
     ohjmac:~ vesal$ javac --version
     javac 21.0.1

    niin homma on valmis asennuksen osalta JDK:n asennuksen osalta :-)

  1. Jos ei anna ajaa Java, niin voit joutua antamaan sille oikeuksia:

    xattr -r -d com.apple.quarantine /Library/Java/JavaVirtualMachines/jdk-21-JavaFX
Mac asetukset
Mac asetukset

1.4.2 JavaFX 21.0.1

(Tosin tämä osuus on siinä Intel Mac-videolla valmiina)

  1. Lataa openjfx-21 kohdasta Intel: macOS/x64/jmods tai M1: macOS/aarch64/jmods (ole todella tarkkana että oikea nimi!)

  2. Pura hakemistoon ~/devel/javafx-jmods-21 (huom, ei desimaaleja!) niin, että tuon hakemiston alla on tiedostoja javafx.base.jmod jne...

  3. Luodaan komentoriviltä uusi JDK jossa JavaFX mukana (huomaa ottaa koko tuo pitkä jono mukaan ja tarvittaessa tarkista nuo desimaaliosat sen mukaan mikä nykyinen versio on):

    cd /Library/Java/JavaVirtualMachines
    sudo jdk-21.0.1.jdk/Contents/Home/bin/jlink --module-path ~/devel/javafx-jmods-21 --add-modules java.se,jdk.jdwp.agent,javafx.fxml,javafx.web,javafx.media,javafx.swing --bind-services --output jdk-21-JavaFX
  4. Asetetaan käytössä olevaksi Javaksi. Katsotaan ensin mitä shelliä käytät (videolla oli väärä komento):

    echo $SHELL

    Nyt sen mukaan tuliko bash vai zsh muokkaa

     sudo nano ~/.bash_profile

    tai

     sudo nano ~/.zshenv

    ja sitten lisää sinne alkuun rivi

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-21-JavaFX

    ja lopuksi Ctrl-X Y ja kuittaa nimi. (eli paina enter)

    Sitten vielä niin, että myös Eclipse yms käyttävät samaa JDK:ta

    launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk-21-JavaFX
  5. Java polkuun:

    sudo nano /etc/paths

    lisää ihan ensimmäiseksi riviksi:

    /Library/Java/JavaVirtualMachines/jdk-21-JavaFX/bin

    Sitten Ctrl-X ja Y ja kuittaa nimi. (eli paina enter)

  6. Avaa uusi terminaali (pääte) ja kokeile että toimii. Kirjoita komentoriville:

     java --list-modules

    Tulostuuko komentoriville mm seuraavat?

     javafx.base
     javafx.controls
     javafx.fxml
     javafx.graphics
     javafx.media
     javafx.swing
     javafx.web

Asennus takkuilee MacOS M2: "Error: Module javafx.web not found"

VL: Katso onko siellä ~/devel/javafx-jmods-21 alla suoraan tiedosto javafx.web.jmod, ei muita hakemistoja välissä. Niin ja että se hakeiston nimi on nimenomaan tuo, ilman desimaaleja!

07 Jan 24 (edited 07 Jan 24)

Kokeile myös kohta 2. Käyttäminen komentoriviltä.

# linux

1.5 Linux

Linux-käyttäjille on suositeltavaa asentaa JDK käyttöjärjestelmän pakettienhallintatyökalua käyttäen. Arch-pohjaisissa käyttöjärjestelmissä (esim. Manjaro) asennusohjeet löytyvät täältä. Fedoralle puolestaan löytyy asennusohje täältä. Debian pohjaisissa käyttöjärjestelmissä (esim. Ubuntu, Mint, Pop!_OS) JDK:n versio 21 asentuu seuraavalla komennolla:

sudo apt install openjdk-21-jdk

Jos saat virheen:

Unable to locate package openjdk-21-jdk

siirry asentamaan ilman pakettienhallintatyökalua tänne

Tarkista JDK:n asennuksen jälkeen, että asennus toimii:

java -version
javac -version
jlink --version

Kaikkien komentojen tulosteessa tulisi näkyä versiona 21.0.1.

# linuxNonApt

1.5.1 Javan asentaminen ilman pakettienhallintatyökalua

Huom! jos asensit Javan aikaisemmin hyppää tämä kohta yli tänne.

Lataa tarvittavat tiedostot (Linux/X64) täältä tai osoitteesta:

https://jdk.java.net/21/

Tallenna tiedostot vaikka Downloads -kansioon ja pura tar.gz -tiedosto komennolla:

tar xvf openjdk-jdk-21.0.1_linux-x64_bin.tar.gz

Voit tarkistaa että kaikki toimii komennoilla:

./jdk-21.0.1/bin/java --version
./jdk-21.0.1/bin/javac --version
./jdk-21.0.1/bin/jlink --version

Kaikkien komentojen tulosteessa tulisi näkyä versiona 21.0.1.

Jatka kohdasta 1.5.2.

# linuxJDK

1.5.2 Oman JDK:n luonti

Luodaan seuraavaksi oma versio JDK:sta, joka sisältää kurssilla vaadittavat moduulit. Lataa openjfx-21 kohdasta Linux / x64 / jmods. Ole tarkkana, että lataat varmasti jmods-paketin. Tallenna .zip-tiedosto Downloads kansioon. Tässä lopullinen tulos tehdään kansioon ~/devel.

Avaa komentorivi ja siirry kansioon, johon tallensit ladattavan tiedoston. Pura .zip-tiedosto komennolla:

unzip openjfx-21.0.1_linux-x64_bin-jmods.zip

Tarkista, että syntyi kansio javafx-jmods-21.0.1

Luo oma JDK komennolla:

jlink --module-path javafx-jmods-21.0.1 --add-modules java.se,jdk.jdwp.agent,javafx.fxml,javafx.web,javafx.media,javafx.swing --bind-services --output jdk-21-JavaFx

Jos asensit Javan ilman pakettienhallintatyökalua, varmista että olet kansiossa jossa on jdk-21.0.1 sekä javafx-jmods-21.0.1 ja aja komento:

./jdk-21.0.1/bin/jlink --module-path javafx-jmods-21.0.1 --add-modules java.se,jdk.jdwp.agent,javafx.fxml,javafx.web,javafx.media,javafx.swing --bind-services --output jdk-21-JavaFx

Siirrä ~/devel -kansioon:

mkdir ~/devel                            # jollei vielä ole
mv jdk-21-JavaFx ~/devel/

1.5.3 Oman JDK:n käyttöönotto

Eri Linux-käyttöjärjestelmissä on eri ratkaisuja eri Java-versioiden hallintaan. Tässä esimerkissä opastetaan Java-versioiden hallinta vain Debian pohjaisissa käyttöjärjestelmissä (muille ks. ohjeet kohdasta 1.5 Linux).

Debian pohjaisissa käyttöjärjestelmissä Javan eri versioita voidaan hallita komennolla update-alternatives. Lisätään aluksi oma JDK:

sudo update-alternatives --install /usr/bin/java java ~/devel/jdk-21-JavaFx/bin/java 100
sudo update-alternatives --install /usr/bin/javac javac ~/devel/jdk-21-JavaFx/bin/javac 100

Jos asensit oman JDK:n eri hakemistoon kuin ~/devel, vaihda komentojen polku vastaamaan valitsemaasi asennuspolkua.

Vaihdetaan seuraavaksi komennot java ja javac osoittamaan juuri lisättyyn JDK:n versioon komennolla:

sudo update-alternatives --config java

Komennon tuloste on suunnilleen seuraava:

There are 5 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java                1711      auto mode
  1            /home/user/devel/jdk-17-JavaFx/bin/java                    100       manual mode
  2            /usr/lib/jvm/java-11-openjdk-amd64/bin/java                1111      manual mode
  3            /usr/lib/jvm/java-16-openjdk-amd64/bin/java                1611      manual mode
  4            /usr/lib/jvm/java-17-openjdk-amd64/bin/java                1711      manual mode
  5            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java             1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 

Tarkista, että kurssin JDK löytyy listasta ja syötä komentoriville sitä vastaava numero (ks. vasen laita). Seuraavaksi anna komento:

sudo update-alternatives --config javac

Syötä taas kurssin JDK:ta vastaava numero.

Voit vaihtaa käytössä olevaa Javan versiota samalla komennolla:

sudo update-alternatives --config [ohjelman nimi]

ja valita haluamasi version. Myös muissa Linux-käyttöjärjestelmissä on samanlaisia työkaluja. Arch pohjaisissa käyttöjärjestelmissä työkalun nimi on archlinux-java ja fedorassa vastaava työkalu on nimeltään alternatives. Molempiin löytyy ohjeet aiemmin mainituista asennusohjeista.

1.5.4 Mistä tiedän että toimii

Komennot toimivat riippumatta kummalla tavalla asensit javan.

java -version
javac -version

molempien pitäisi näyttää 21.0.1

java --list-modules

Tulostuuko komentoriville mm seuraavat?

 javafx.base
 javafx.controls
 javafx.fxml
 javafx.graphics
 javafx.media
 javafx.swing
 javafx.web

Nyt voit periaattessa poistaa Downloads-kansiosta kaikki mitä sinne tuli tämän takia jos tilasta on pulaa.

# cmd

2. Käyttäminen komentoriviltä

Seuraavissa esimerkeissä käynnistetään tekstieditori. Sen kohdalla voit toki käynnistää muunkin editorin kuin ohjeessa on.

Editorilla on tarkoitus kirjoittaa tiedosto, jonka sisältö on:

// Ohjelma tulostaa tekstin Hello world!
public class Eka {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

Eli esimerkkien siinä kohdassa kun muokataan tiedostoa Eka.java, kirjoita tämä sisältö.

2.1 Windows

  • Esimerkiksi Windowsista puuttuu kokonaan nykyhakemiston käsite. Siksi on huomattavasti helpompi käyttää konetta kun pitää aina vähintään yhden Command Prompt (tai BashShell, silloin lue Linux-ohjeita)-ikkunan auki ja käynnistää ohjelmat siitä.

  • Kannattaa tehdä itselleen yksi hakemisto, joka on ohjelmien hakupolussa ja johon kaikki tarvitavat apuohjelmat lisätään. Itselläni tuo apuhakemisto on aina c:\bat ja yllä JDK:n kohdalla on ohje kuinka hakemisto lisätään hakupolkuun Windows XP/W7/W8/W10-järjestelmässä. Agoran mikroluokissa vastaava polku on n:\bin.

  • Jos halutaan työskennellä jossakin tietyssä hakemistossa, siirrytään Command promptissa ensin cd-komennoilla haluttuun työhakemistoon. Näin menetellen ja edellisten ohjeiden jälkeen ohjelmat käynnistyvät komentoriviltä seuraavasti: (// ja sen jälkeinen osa ovat kommenttia jota ei kirjoiteta npp tilalla voit käytätä muutakin editoria, esim code):

      cd c:\kurssit            // siirrytään kurssit-hakemistoon
      mkdir ohj2               // luodaan uusi ohj2-hakemisto
      cd ohj2
      mkdir demo1
      cd demo1                 // siirrytään demo1-hakemistoon
       ...
      cd c:\kurssit\ohj2\demo1 // siirrytään suoraan demo1 hakemistoon jos tämä on olemassa
      npp Eka.java             // käynnistää Notepad++ editorin ja avaa tai luo uuden Eka.java -tiedoston
      javac Eka.java           // käännetään Java-tiedosto
      java Eka                 // ajetaan Java-ohjelma
       ...
  • Komentorivillä on kätevä täydennysominaisuus. Esimerkkejä käytöstä:

      cd c:\ku[Tab]    => cd c:\kurssit
      ja[F8]           => hakee edellisen ja-alkavan komennon, esim. java Eka
  • Joskus myöhemmin lue: Debuggaus komentoriviltä

Mitä tuo nykyhakemistoproblematiikka tarkoittaa?
- VL: sitä että et voi määritellä että nyt kaikki ohjelmat käynistyvat esim hakemistoon ohj2, vaan kukin ohjelman käynistyy ihan minne lystää.

17 Jan 16 (edited 08 Jan 22)

Asensin Notepad 7.8.2 64-bittisen ja kokeilin komentoriviltä tuota mutta tuli ilmoitus että npp is not recognized

VL: Ei toimikkaan ellet itse tee vastaavia komentoja: Käynistys komentoriviltä

07 Jan 20 (edited 07 Jan 20)

Jos ei halua tehdä npp.bat tiedostoa, niin voi käyttää alla olevaa pätkää: "start notepad++ tiedoston nimi"

VL: Tuo vaatii että tuo notepad++:n polku on lisätty PATH-ympäristömuuttujaan. En pidä järkevänä että yksittäisten exe-tiedostojen takia polkua pidennetään. Siksi teen noita pikku bat-tiedostoja, jotka ovat sitten yhden polun takana jotta PATH ei pitene. PATH nimittäin loppuu usein kesken :-( Ja kone hidastaa mitä pidempi PATH on. Ohjelmat valitettavan usein työtävät itseään turhaan PATHiin vaikkei tarvitsisi.

08 Jan 24 (edited 08 Jan 24)

Miksi npp vaatii tuon pathin tai .bat tiedoston mutta Vs Code ei?

VL: VS Coden asennus lisäsi itsensä polkuun. Ja siis teki juuri sen mistä tuolla aikaisemmin varoitin.

08 Jan 24 (edited 08 Jan 24)
# mac

2.2 macOS

  • Tee kotihakemistoosi hakemisto (kansio) kurssit ja sen alle hakemisto ohj2, johon teet kaikki ohjelmasi omiin hakemistoihinsa. Hakemistot voit tehdä Finderissa GUI:lla tai komentoriviltä komennolla mkdir. Muista, että hakemistoerotin on macOS:ssä Unixin mukainen kauttaviiva / !

    cd ~                           # siirrytään kotihakemistoon
    mkdir -p kurssit/ohj2/demo1    # luodaan demo-hakemisto
    cd kurssit/ohj2/demo1          # siirrytään demo-hakemistoon
    
    nano Eka.java       # käynnistää nano editorin ja avaa tai luo Eka.java, kirjoita sisältö
                        # ja sitten Ctrl-X, Y, ja kuittaa nimi    
    javac Eka.java      # käännetään Java-tiedosto
    java Eka            # ajetaan Java-ohjelma

    aikanaan voi Eclipsen käynnistää:

    open -a eclipse        # käynnistetään Eclipse IDE
  • Voit käyttää kurssit-hakemiston tilalla esim opinnot-hakemistoa, jos se tuntuu tutummalta.

  • Emacsin GUI-versiossa menut toimivat kuten olettaa sopii, ”komentoriviversiossa” menut aktivoituvat F10-näppäimellä.

  • Nimen täydennys toimii sarkaimella (Tab) kuten Windowsissa, mutta jos ensimmäisen painalluksen jälkeen ei täydennystä ilmesty, paina sarkainta toisen kerran, jolloin kaikki vaihtoehdot listataan komentorivin yläpuolelle. Aiemmat komennot löytyvät kursorinäppäimillä ylös ja alas, ja niitä voi etsiä näppäilemällä C-r eli r-näppäin control-näppäin alaspainettuna, jonka jälkeen aletaan kirjoittamaan etsittävää tekstiä, C-r uudelleen painaminen etsii edeltävän ja C-g keskeyttää etsimisen. Kursorinäppäimet lopettavat etsimisen ja rivinvaihto suorittaa löydetyn komennon. (Innokkaimmat voivat lukea lisää antamalla komennon man bash.)

  • Emacsin graafinen versio löytyy osoitteesta: http://emacsformacosx.com Asennuksen jälkeen voit aukaista Emacsiin komentorivin komennolla M-x eshell <ret>, eli paina esc-näppäintä, sitten x-näppäintä, kirjoita eshell ja paina rivinvaihto-näppäintä, ja Emacsissa on komentorivi käytössä. Sama toimii komentoriviversiossa, joka tulee oletuksena käyttöjärjestelmän mukana, mutta on tympeämpi käyttää.

2.3 Linux

Luodaan kurssille hakemisto, jonka alle saa kätevästi kaikki demot ja harkkatyön. Tehdään yksinkertainen Java-ohjelma:

cd ~                                          # siirrytään kotihakemistoon
mkdir -p kurssit/ohj2/demo01                  # luodaan demokansio
cd kurssit/ohj2/demo01                        # siirrytään demokansioon

gedit Eka.java                                # kirjoitetaan java-ohjelma
javac Eka.java                                # käännetään tavukoodiksi (.class)
java Eka                                      # ajetaan virtuaalikoneessa (JVM)

Ubuntussa ja muissa GNOME-työpöydän omaavissa distroissa tulee mukana gedit-tekstieditori. Voit myös käyttää Geditin tilalla jotain muuta tekstieditoria (Emacs, Vim, Geany, Visual Studio Code, Nano).

3. Ongelmia

Jos asennettaessa tulee virheilmoitus:

Another Java installation is in progress. 
You must complete that installation 
before you can run this installer

niin tuhoa tiedostot:

C:\ProgramData\Oracle\Java\JAVA_INSTALL_FLAG 
%USERPROFILE%\AppData\LocalLow\Sun\Java\JAVA_INSTALL_FLAG

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