The page has been modified since the last reload. Refresh now?

There are {{ $ctrl.pendingUpdatesCount() }} pending paragraph updates.

JDK (Java Development Kit)

TODO: Videoilla ohjeet on Java 11 varten!

TODO: Pitää asentaa kuitenkin JDK: 12.0.1

Asennusurakka

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).
  • JRE = Jave Runtime Environment, Javan ajoympäristö, Java tulkki. Tämä pitää olla jotta voi ajaa Java-ohjelmia (.class, .jar). Tämän voi asentaa erikseen tai se asentuu kun asentaa JDK:n.

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.

#

1. Asentaminen

#

1.1 Windows

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

C:\Program Files (x86)
  • Mikäli tätä ei löydy, on sinulla on vain 32 bit Windows, jolloin joudut tyytymään Java 1.8:aan Kurssin asiat saa tehtyä silläkin. Sen voi ladata:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

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

Saako tätä JDK 11 ladattua Oraclen sivulta muutoin kuin kirjautumalla sivustolle?

VL: laitoin tuonne:

pari .zip tiedostoa. Kokeilkaa niilla!

02 Jun 19 (edited 02 Jun 19)

Tuon polun takana olevassa hakemistossa ei ole .zip päätteisiä tiedostoja. Näkyy kyllä että kansioon on tehty muutos mutta itse tiedostoja ei näy.
VL: kopiointi oli jostakin syystä keskeytynyt, kokeiles uudelleen… No on muuten 11.01 kun ohjeissa puhutaan 11.0.2 eli muista muuttaa kaikkialla vastaavasti. Mutta noilla 11.0.1 pide kevään kurssin, ne on asennettuna kaikissa mun koneissa.

VL: mutta mikäs vika on sivuilta saatavassa 12.01-versiossa. laitoin sen omaan kotikoneeseen ja kaikki toimii ihan hyvin???

02 Jun 19 (edited 02 Jun 19)
  1. Mennään lataamaan JDK 12 Oraclen sivuilta:
  1. Tarkoitus on ladata JDK 12 tai uudempi (jos haluat urheilla, niin lataa Java EE xxx)

  2. Valitse JDK oikean käyttiksen kohdalta (Windows x64 on 64 bit) ja lataa koneelle

  3. Pura Admin-käyttäjänä .zip-tiedosto hakemistoon C:\Program Files\Java.

  4. Sitten lisää polkuun tuo 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)

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

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

    6. Edit (suom. Muokkaa)

    7. New

    8. Lisää rivi:

      C:\Program Files\Java\jdk-12.0.1\bin
    9. OK riittävän monesti

  5. 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:\Program Files\Java\jdk-12.0.1\bin
    8. OK riittävän monesti

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

#

1.2 Mistä tiedän että toimii

  1. avaa uusi komentoikkuna

  2. Kirjoita komentoriviltä

     javac -version 
  3. pitäisi tulostaa:

     javac 12.0.1

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

C:\MyTemp\vesal\ohj2>jshell
|  Welcome to JShell -- Version 12.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.

Mitä jos tulostaakin jotain muuta? Löytyykö ohjeita vanhan javan poistamiseen?

21 May 19

Javani käyttää jostain syystä vanhempaa versiota. Jos poistan vanhan kansion, valittaa jostain viitteestä vanhaan kansioon. Ei jostain syystä tunnista uutta javapakettia

05 Jun 19 (edited 05 Jun 19)

Videolla taidetaan kertoa ratkaisu tähän ongelmaan.

14 Jun 19

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

1.3 Mac OS X

  1. Hae JDK Java-sivulta

    • Valitse JDK 12 oikean käyttiksen kohdalta (Mac OS X x64).
  2. Tuplaklikkaa ladattua tiedostos ja se purkautuu Lataukset- kansioon

  3. Avaa terminaali ja anna komennot (~ tulee Macissa joko Alt+¨ tai Alt+cmd+¨)

    cd ~/Downloads       
    sudo mv jdk-12.0.1.jdk /Library/Java/JavaVirtualMachines/
    java -version
    javac -version
  4. Jos tulostaa tyyliin:

    ohjmac:Downloads vesal$ java -version
    openjdk version "12.0.1" 2018-10-16
    OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
    ohjmac:Downloads vesal$ javac -version
    javac 12.0.1

    niin homma on valmis asennuksen osalta :-)

1.4 Linux

Katso ohjeet: https://openjdk.java.net/install/

Useimpiin linuxdistroihin JDK:n saa asennettua suoraan pakettienhallinnasta

  • Ubuntu (18.04.1)

Näköjään 18.04 asentaa JDK 10, vaikka halutaan 11. OpenJDK 11:n saa asennettua tallentamalla seuraavan skriptin tiedostoon ja ajamalla sen “sudo sh skripti.sh” tai ajamalla jokaisen komennon erikseen, jos haluaa.

Vaihda seuraavassa tarvittavat: 12.0.1

#!/bin/sh

wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz -O /tmp/openjdk-11.0.1_linux-x64_bin.tar.gz
tar xfvz /tmp/openjdk-11.0.1_linux-x64_bin.tar.gz --directory /usr/lib/jvm
rm -f /tmp/openjdk-11.0.1_linux-x64_bin.tar.gz
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-11.0.1/bin/java 1111
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-11.0.1/bin/javac 1111
update-alternatives --auto java
java -version
  • Ubuntu (18.10)

    sudo apt update && sudo apt install openjdk-11-jdk openjdk-11-jre-headless openjdk-11-doc

Hei. Ongelmana vaikuttaisi olevan, että Ubuntu 18.04.4 ei suostu pävittymään JDK 10.0.2 uudemmaksi. Tälläinen ilmoitus tulee kun toitan pävittää: “openjdk-11-jdk on jo uusimmassa versiossa (10.0.2+13-1ubuntu0.18.04.4).”

06 Jan 19 (edited 06 Jan 19)

Ubuntu paketin versio != Javan versio, ainakin repon sivujen mukaan, openjdk-lts 10.0.2+13-1ubuntu0.18.04.4 rakentaa Javan JDK 11 ja sen osat. Mitä kertoo (olettaen että olet vaihtanut Javan pathin uuteen) “java -version”?

06 Jan 19

Näillä ohjeilla asensin ubuntuun 18.04.1. Haettaessa java -version ja javac -version, saan 10.0.2

07 Jan 19 (edited 07 Jan 19)

Ohjeet korjattu, kun näköjään todella Ubuntu asentaa JDK10 haettaessa JDK11.

08 Jan 19 (edited 08 Jan 19)

1.4.1 Mistä tiedän että toimii

java -version
javac -version

molempien pitäisi näyttää 12.0.1

#

2. Käyttäminen komentoriviltä

Seuraavissa esimerkeissä käynnistetään tekstieditori. Sen kohdalla voit toki käynnistää muunkin editoirin 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, kirjoitta 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-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-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)

      cd c:\MyTemp             // siirrytään MyTemp-hakemistoon
      mkdir ohj2               // luodaan uusi ohj2-hakemisto
      cd ohj2
      mkdir demo1
      cd demo1                 // siirrytään demo1-hakemistoon
       ...
      cd c:\MyTemp\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
       ...
      ee1812                     // käynnistätään Eclipse Java-IDE mikroluokissa
  • Komentorivillä on kätevä täydennysominaisuus. Esimerkkejä käytöstä:

      cd c:\My[Tab]    => cd c:\MyTemp
      ja[F8]           => hakee edellisen ja-alkavan komennon, esim. java Eka
  • 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 03 Jan 18)
#

2.2 Mac OS X

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

    cd ~/Code/Java             # siirrytään kotihakemiston Code/Java-hakemistoon
    mkdir ohj2                 # luodaan uusi ohj2-hakemisto
    cd ohj2
    mkdir demo1
    cd demo1                   # siirrytään demo1-hakemistoon
     ...
    cd ~/Code/Java/ohj2/demo1  # siirrytään suoraan demo1 hakemistoon jos tämä on olemassa
    emacs Eka.java             # käynnistää Emacs editorin ja avaa tai luo uuden Eka.java -tiedoston
    javac Eka.java             # käännetään Java-tiedosto
    java Eka                   # ajetaan Java-ohjelma
     ...
    open -a eclipse            # käynnistetään Eclipse IDE
  • 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 ‘ctrl’-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ö. Tehdään yksinkertainen Java-ohjelma:

cd ~                                          # siirrytään kotihakemistoon
mkdir mytemp mytemp/ohj2 mytemp/ohj2/demo01   # luodaan demokansio
cd mytemp/ohj2/demo01                         # siirrytään demokansioon

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

Ubuntu (18.04.1) asentaa Emacs (25.2.2) komennolla sudo apt install emacs25

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.