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

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

JavaFX työkalujen asennus

Asennusurakka

Tässä dokumentissa ohjeistetaan JavaFX, e(FX)clipsen ja SceneBuilderin asennus.

Ennen kuin menet eteenpäin, niin onhan:

Asennusvideot:

1. JavaFX

JavaFX on yksi Javaan tarjolla olevia kirjastoja tehdä graafisia käyttöliittymiä. Muita ovat mm. AWT, Swing ja SWT. Kurssilla käytetään nykyisin JavaFX:ää, koska se muistuttaa eniten mm. Windows-puolen WPF-kirjastoa (mutta valitettavasti huonommin työkaluin).

1.1 JavaFX hakeminen

OpenJDK:n mukana ei tule enää versiosta 11 alkaen enää automaattisesti JavaFX:ää, jota tarvitaan käyttöliittymien tekemiseen. Tätä aiheutuu meillä jonkin verran turhaa vaivaa.

  • Windows:
    1. Hae JavaFX Windows SDK

    2. Pura .zip paketti esim: c:\devel\javafx hakemistoon niin, että bin näkyy tämän hakemiston alla, eli ennen purkamista siirry hakemistoon, jossa näkyy bin, lib yms ja valitse ne kaikki ja sitten pura. Eli kansiorakenne olisi:

       c:\
         devel\
            javafx\
               bin\
               legal\
               lib\
                   javafx-swt.jar
                   ...
  • Mac: 1. Hae JavaFX Mac OS X SDK
    1. Tuplaklikkaa haettua tiedostoa.

    2. Purkaantuu nimelle javafx...

    3. Nimeä uudelleen javafx

    4. Siirrä tai kopioi kansioksi

       /Users//devel/javafx
  • Linux:
    1. Hae JavaFX Linux SDK
    2. unzip openjfx-11.0.1_linux-x64_bin-sdk.zip
    3. mv javafx-sdk-11.0.1 /home//devel/javafx

1.1. Windows kohta 2.: Ei anna ainakaan mun kone purkaa, jos valitsee (zip-paketin) javafx-sdk-11.0.1.-kansiossa bin- ja lib-ym. kansiot esim Ctrl+A:n avulla. Mutta kun painaa oikealla hiirenkorvalla javafx-sdk…-kansiossa tyhjään kohtaan voi Extract all. Nyt kansiorakenne mulla, siis omalla koneella, on: C:\Ohj2Tyokalut\javafx\javafx-sdk-11.0.1.\bin ym. kansiot Menikö oikein? Vai pitäisikö nuo binit ym. olla javafx-kansiossa? Eli ohjeen kohta 2. on mielestäni epäselkeä. Voisiko ko. 2-kohtaan lisätä, miltä sen lopullisen tiedostorakenteen pitäisi näyttää (jos sillä siis on väliä) tai jtn muuta selkeyttävää?



VL: nyt on kasiorakennekin tuolla. Turhan pitkä tuo sun polkukiroiteltavaksi, mutta pitäisi toimia kunhan muistaa aina vaihtaa vastaavasti jos mulla on ohjeissa c:\devel\javafx. Videollakin näkyy purkaminen (tosin tyhmemmin tehtynä).

07 Jan 19 (edited 07 Jan 19)

1.2 Eclipseen JRE jossa JavaFX mukana

#

Tee Eclipsessä oma käyttäjän JavaFX-kirjasto:

  1. Avaa Eclipse

  2. Window/Preferences/Java/Installed JRE's

  3. Mene jdk-12.0.1 kohdalle

  4. Paina Duplicate...

  5. JRE name: jdk-11-JavaFX

  6. Default VM arguments: (huomaa että vaihdat tarvittaessa hakemistojen nimiä omaa konetta vastaavaksi)

    • Windows (ota Windowsiin tämä, videossa otin väärän):

      --module-path c:\devel\javafx\lib --add-modules javafx.controls,javafx.fxml,javafx.media,javafx.web,javafx.swing
    • Mac:

      --module-path /Users/vesal/devel/javafx/lib --add-modules javafx.controls,javafx.fxml,javafx.media,javafx.web,javafx.swing
    • Linux:

      --module-path /home/vesal/devel/javafx/lib --add-modules javafx.controls,javafx.fxml,javafx.media,javafx.web,javafx.swing
  7. Paina Add External JARs...

  8. Lisää kaikki .jar-tiedostot hakemistosta:

    • Windows: c:\devel\javafx\lib
    • Mac: /Users//devel/javafx/lib
    • Linux: /home//devel/javafx/lib
  9. Valitse sitten kaikki JavaFX:än takia lisätyt .jar-tiedostot, klikkaa Javadoc location: ja lisää sinne osoite:

     https://openjfx.io/javadoc/11/
  10. Finnish

  11. Ruksi juuri tekemäsi uusi JRE aktiiviseksi.

  12. Apply and Close

Jos purat javafx:n johonkin muuhun hakemistoon kuin esimerkissä, pitää kohdassa 5 laittaa module-path oman hakemiston mukaiseksi!

07 Jan 19 (edited 07 Jan 19)

https://openjfx.io/javadoc/11/ >>> http://openjfx.io/javadoc/11/

Suojatulla yhteydellä dokumentaatio ei toimi eclipsessä ( Ubuntu ).

03 Feb 19

HUOM! Muista aina jatkossa projektia tehdessä tarkistaa, että JRE-kohdassa on tämä JDK!

1.3 Mistä tiedän että toimii?

  1. Luo uusi Eclipsen Java projekti:

    1. File/New/Java Project
    2. Project name: hellofx
    3. Ruksi (videossa en ruksinut tätä) ja katso huolella että kohdassa Use default JRE lukee suluissa edellä luomasi: jdk-11-JavaFX. Jos ei lue, niin valitse Use project specific JRE: ja etsi se siihen.
    4. Jos kysyy module-infon luomista, niin kiellä!
    5. Finnish
  2. Tee uusi Eclipse Java-luokka:

    1. Klikkaa uusi projektisi aktiiviseksi.
    2. File/New/Class
    3. Package: fxHello
    4. Name: HelloWorld
    5. Finish
  3. Katso että HelloWorld.javan paketti fxHello on src hakemiston alla.

  4. Eihän vaan ole tiedostoa module-info.java? Jos on, poista se.

  5. Kopioi tiedoston HelloWorld sisällöksi:

    package fxHello;
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Label;
    import javafx.scene.layout.BorderPane;
    import javafx.stage.Stage;
    
    /**
     * Yksinkertainen esimerkki JavaFX ohjelmasta
     * @author vesal
     * @version 4.3.2016
     */
    public class HelloWorld extends Application {
        @Override
        public void start(Stage primaryStage) {
            BorderPane root = new BorderPane();
            Label label = new Label("Moi!");
            root.setCenter(label);
            Scene scene = new Scene(root);
            primaryStage.setScene(scene);
            primaryStage.show();
        }
    
    
        /** @param args  ei käytössä  */
        public static void main(String[] args) {
            launch(args);
        }
    }
  6. Mitään ei saa olla punaisella tai keltaisella!

  7. Run/Run

  8. Pitäisi aueta pieni ikkuna, jossa lukee Moi!

Pähkäillyt nyt muutaman tunnin ongelmani kanssa, mutta millään en ratkaisua löydä. Jostain syystä saan 14 eri virhettä kun yritän ajaa HelloWorldin. Seurasin ohjeita ja kaikki mennyt hyvin 3. kohtaan saakka, mutta jostain syystä saan virheet.

VL: kerros niistä ensimmäinen. Se voi antaa vinkkiä. Kuulostaa sitlä että JavaFX ei ole käytössä, hakemiston nimet väärin tms. Mikä käyttis?

Asia korjaantui kun lisäsin HelloWorld classin suoraan src alle. Jostain syystä se ei aikaisemmin ilmeisesti tätä JavaFX lähtenyt käyttämään kun yritin lisätä uuden classin hellofx projektin ollessa valittuna

VL: En tiedä miten olet lisännyt classin, mutta kyllä mulla saa kursori olla melkein missä vaan ja class lisääntyy aina src hakemiston alle. Tutkis miten pitää tehdä että saa menemään väärin?

03 Jan 19 (edited 06 Jan 19)

Yritin ajaa 1.3 kohdan HelloWorldin, mutta antaa seuraavanlaisen errorin: “Error occured during initialization of boot layer java.lang.module.FindException: Module javafx.web not found” Mistä mahtaa johtua?

VL: eihän sulla vaan Modulepathissa ole jotakin muutakin kuin se JDK?

Joo juuri, kun kerkesin kirjoittamaan tänne niin huomasin, että Modulepathissa oli pikku virhe. Nyt toimii!

05 Jan 19 (edited 06 Jan 19)

Minulla sama ongelma kuin edellä: Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.web not found. Package Explorerissa: hellofx packagen alla on JRE System Library [jdk-11-JavaFX] ja sen alla src -> fxHello -> HelloWorld.java. Kun valitsen hellofx packagen ja menen Project -> Properties -> Java Build Path -> Libraries, niin sielläkin näkyy modulepathin alla pelkästään tuo JRE System Library [jdk-11-JavaFX]. Kaikki kohdat ennen tätä toimii oikein :(

VL: eihän sulla vaan mitään ole punaisella? Onhan WM-arguments edellä varmasti oikein? Eihän vaan ole module-info.java-tiedosto. Jos on, poista.

Piti vaihtaa ylhäältä otettuun –module-path… oikea kansio oman koneen asennuksen mukaan, niin rupesi toimimaan.

06 Jan 19 (edited 06 Jan 19)

Tämä asennus tuntuu hieman haastavalta. Jouduin kertaalleen poistamaan koko asennuksen kun ohjelmat eivät kääntyneet. Asensin kaiken nyt uudelleen ja kaikki lähti toimimaan. Mutta tuo JavaFX ei löydy sitten millään. polku on oikein ja koska testiohjelmakin toimi, niin kuvittelisin sen olevan ok. Mutta ei..

14 Jan 19 (edited 14 Jan 19)

HelloWorld hajosi eikä lähde toimimaan usean tunnin kokeiluista huolimatta. Sain tällaisen ‘Launch configuration BitmapArraySample references non-existing project kokeilu.’ -> toimii, vaihdoin uuden workspacen ja tein uudelleen siihen FX-asetukset

20 May 19 (edited 20 May 19)

Jos ei toimi, niin katso että asetukset ovat seuraavasti:

Mistähän nämä asetukset mahtavat löytyä?

09 Jan 19

Nyt saat ruksia asennetuksi kohdan: JavaFX.

#

2. e(fx)clipse

Eclipsen e(fx)clipse-laajennus tuo Eclipseen työkaluja JavaFX-ohjelmien kirjoittamiseen.

Huom. Nämä ohjeet Eclipsen versiolle 2019-03 tai uudemmalle.

Asenna Eclipsen e(fx)clipse (3.4.1) päivitys tukemaan Java 11

  1. Avaa Eclipse (Mikroluokissa voit käynnistää myös komentoriviltä komennolla: ee1812.)
  2. Joko: Valitse menusta Help/Eclipse Marketplace:
    1. Etsi e(fx)clipse
    2. Valitse e(fx)clipse 3.4.1
    3. Install
    4. Lopuksi muista odottaa tarpeeksi kauan, että ehtii asentua. Ensin haetaan asennuspaketti ja sitten ruvetaan asentamaan ja sen edityminen näkyy oikeassa alanurkassa ja se kestää… Lopuksi pitää odottaa Eclipsen kysymysikkuna, että sen saa käynnistää uudelleen.
  3. tai: Help/Install New Software... (tämä kuulema asentaa väärän version, älä käytä)
    1. Valitse Work with: -pudotusvalikosta --All Available Sites
    2. Kirjoita filter-kenttään: e(fx)clipse
    3. Tulosten ilmestymiseen menee hetki ilman, että ohjelma reagoi mitenkään.
    4. Ruksi kohta Group items by category, ellei ole valmiina.
    5. Laajenna sitten kohta General Purpose Tools ja laita ruksi kohtaan e(fx)clipse - IDE
      • mutta jos ei pienen odottelunkaan jälkeen löydy, niin
      • paina Work with-kentän oikealla puolella Add...
      • ja täytä rivit:
      Name:     e(fx)clipse
      Location: http://download.eclipse.org/efxclipse/updates-released/3.4.1/site
      • ok
      • ruksi oikea IDE-versio e(fx)clipse
      • Mikroluokissa valitse listasta e(fx)clipse - single components Kuvan teksti
      • Älä välitä mahdollisesta l10n-paketin asentamisongelmasta.
  4. Painele OK/Next ja hyväksy tarvittavat lisenssiehdot.

Varmistu siitä, että edelliset vaiheet ovat kunnossa. Muuten Eclipse voi kaatua, eikä enää käynnisty.

e(fx)clipse asentaessa Eclipse kaatui, eikä enää käynnisty. Mitä seuraavaksi voi tehdä?

07 Jan 19

Kävi sama homma

07 Jan 19

VL: Tämä on nyt yhtäkkiä ilmestynyt ongelma. Ovatko vaihtaneet jotakin e(fx)clipsen asennusjuttua tuolla, koska kaikki tähän asti asentaneet ovat saaneet toimimaan :-(

Hätätilassa pärjätään ilman tätäkin FXMLPacakage.jar:in ansiosta. Eli jättäkää se toistaiseksi pois.

Eclipseä voisi kokeilla käynnistyykö toisella WorkSpacella. Jos sekän ei auta, niin tuhoaa sen Eclipsen hakemiston ja purkaa uudelleen.

EDIT: kokeilein uudelleen asentaa hakemalla Eclipsen ja e(fx)clipse ja hyvin asentui. Ettehän ole sooloilleet hakemistonimissä ja/tai Eclipsen versiossa? Onhan Eclipse: Eclipse IDE for Java Developers eikä mitään asennustyökalua, pelkkä zipin purkaminen c:\devel\ec1812-kansioon?

07 Jan 19 (edited 07 Jan 19)

Itselläkin kävi sama homma asennuksessa ja pienen selvittelyn jälkeen selvisi, että kohdan 3. mukaan (Install New Software) asennettu e(fx)clipse, asentaa version 3.30, joka ei toimi. Kun asentaa kohdan 2. mukaan (Eclipse Marketplace), tulee versio 3.4.1, joka toimii.

07 Jan 19

En edes pääse kokeilemaan tehdä tätä kohdan 2 mukaan. Saan jatkuvasti herjan“Cannot complete request to http://marketplace.eclipse.org/catalogs/api/p: Unable to read repository at http://marketplace.eclipse.org/catalogs/api/ p. Unable to read repository at http://marketplace.eclipse.org/catalogs/api/ p. Address family not supported by protocol family: connect Connection failed

This is most often caused by a problem with your internet connection. Please check your internet connection and retry. Address family not supported by protocol family: connect" ja siis netti muuten toimii ok.

10 Jan 19 (edited 10 Jan 19)

Minulla oli ongelma e(fx)clipsen asentamisen kanssa. Vika oli vanhassa eclipse-versiossa 2018-09, mikä korjaantui heti asentamalla versio 2018-12

11 Jan 19

2.1 Mistä tiedän että toimii

  1. Ota Eclipsessä File/New/Other/
  2. Jos löytyy kohta JavaFX ja sen alta JavaFX Project

Nyt saat ruksia asennetuksi kohdan: e(fx)clipse.

Jee, asennetaan seuraavaksi SceneBuilder…

Ensin en saanut JavaFX-kohtaa näkymään e(fx)clipsen asennuksen jälkeen. Ilmeisesti edellisen ohjeen kohdan 4. jälkeen täytyy odottaa, että Eclipse kysyy pop-up-ikkunassa uudelleenkäynnistystä IDE:n muutosten vuoksi, mikä täytyy hyväksyä (manuaalinen restart ei toiminut ennen viestiä). Tämän kysymyksen ilmestymisessä kesti jonkin aikaa enkä sitä ensimmäisellä kerralla ymmärtänyt odottaa. Ongelma ratkesi kun uudelleenkäynnistin Eclipsen ja toistin e(fx)clipsen asennuksen, ja huomasin tuon pop-up-ikkunan.

08 Jan 19

3. SceneBuilder

SceneBuilder on työkalu tuottaa JavaFX:ässä käytettyä ulkoasun esittämismuotoa, eli .fxml-tiedostoja. Näitä tiedostoja voidaan aivan hyvin tehdä millä tahansa tekstieditorilla, ja siis myös Eclipsellä. Ja usein tekstimuotoista muokkaamista käytetäänkin, koska se on nopeampaa kuin hiirellä klikkailu. Mutta kunnes kielen pääsee sisälle, voi olla helpointa ainakin aloittaa uudet käyttöliittymät tuottamalla ensimmäiset .fxml-tiedosto graafisella työkalulla. Ja SceneBuilder on yksi tähän välttävästi sopiva työkalu (välttävästi tarkoittaa tässä ettei se alkuunkaan vedä vertoja Microsoftin Visual Studion tai Blendin tasoisille työkaluille).

Seuraavassa on ohjeet SceneBuilderin asentamiseen.

Jos sinulla on omassa koneessasi vanha SceneBuilder, niin tee sille uninstall ja poista kaikki siihen liittyvät tiedostot aluksi.

Agoran mikroluokissa SceneBuilder on valmiiksi asennettuna
C:\devel\SceneBuilder\SceneBuilder.exe,
joten voit siirtyä suoraan kohtaan 2 tarkistamaan asetuksia.

  1. Valitse Gluonin SceneBuilder-lataussivulla oikea käyttöjärjestelmä, lataa asennustiedostot ja asenna SceneBuilder.

    • Windows: Voit asentaa muuhunkin kuin oletushakemistoon, esimerkiksi:
      C:\devel\SceneBuilder

    • OS X: Pudota normaalisti Ohjelmat/Applications -kansioon.

    • Debian-pohjaisissa Linuxeissa (esim. Ubuntu) paras tapa asentaa on avata ladattu tiedosto Software Center:lla. Vaihtoehtoisesti alla olevat komennot voi syöttää terminaaliin.

      sudo apt install scenebuilder-11.0.0.deb
    • Fedora/CentOS (esim. Red Hat Enterprise Linux) käyttää sudo rpm -i dpkg:n sijaan tai vaihtoehtoisesti voi extractata SceneBuilderin .rpm-tiedostosta toimimaan standalonena

      sudo dpkg -i scenebuilder-9.0.1.deb
      sudo apt-get -f install
  2. Asennuksen jälkeen avaa Eclipse ja hyväksy kysymys Workspacen käytöstä.

  3. Siirry Eclipsen valikkoriviltä asetuksiin ja siellä JavaFX-kohtaan:

    • Windows: Window/Preferences/JavaFX
    • OS X: Eclipse/Asetukset/JavaFX
    • Linux: Window/Preferences/JavaFX
  4. Kirjoita SceneBuilder executable -kenttään SceneBuilder asennuksen sijainti:

    • Windows:
      • C:\Users\OMATUNNUS\AppData\Local\SceneBuilder\SceneBuilder.exe
      • tai C:\devel\SceneBuilder\SceneBuilder.exe jos teit asennuksen sinne.
      • Huomaa että nimi pitää nimenomaan olla SceneBuilder.exe, eli se asennettu versio, ei se sivuilta ladattu asennuspaketti.
    • OS X: /Applications/SceneBuilder.app
    • Linux: /opt/SceneBuilder/SceneBuilder

3.1 Mistä tiedän että toimii?

Jos et vielä ole asentanut kurssin Jar-paketteja Ali.jar, FXGui.jar, niin tee se viimeistään nyt.

Sitten tee SceneBuilder käyttö -harjoitusta ainakin siihen asti että SceneBuilder aukeaa.

Nyt saat ruksia asennetuksi kohdan: SceneBuilder.

Jee! Jos tulit tänne Eclipsen asennusvaiheesta, niin voit mennä takaisin jatkamaan asetusten säätöä.

Nice to know: Jos ihmettelit, miksei SceneBuilderia ladattu Oraclen sivuilta, niin Oracle jakelee nykyisin vain SceneBuilderin lähdekoodia, ja Gluon on hyvä lähde valmiiksi käännetylle versiolle.

4. Käyttö

Näitä ei tarvitse asennusvaiheessa stressata, mutta perusohjeita SceneBuilderin käytöstä löytyy sitten täältä.

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