Pouze tento týden sleva až 80 % na e-learning týkající se Javy. A zároveň využij akce až 30 % zdarma při nákupu e-learningu - Více informací.
Hledáme koordinátorku kurzů a programátora, 100% home office, 100% flexibilní. Prozkoumej aktuální pozice
Java week
Avatar
zyxzyx
Člen
Avatar
zyxzyx:13. ledna 10:33

Vytvořím novvý projekt v NetBeans JavaFX Application - JDK 17 s vygenerováním výchozí main třídy.
Pokud spustím přímo výchozí třídu pomocí Run, aplikace "Hello World" se spustí a funguje.
Aniž bych jakkoliv upravoval projekt a spustím kompilování do spustitelného souboru JAR "Clean and Build".

Build se nedokončí a Output vrátí chyby s odkazy do jfx-impl.xml:

  • do-compile:

    [mkdir] Created dir: E:\SOURCE\JavaF­XApplication12\bu­ild\empty

    [mkdir] Created dir: E:\SOURCE\JavaF­XApplication12\bu­ild\generated-sources\ap-source-output

    [javac] Compiling 1 source file to E:\SOURCE\JavaF­XApplication12\bu­ild\classes

BUILD FAILED
E:\SOURCE\JavaF­XApplication12\nbpro­ject\jfx-impl.xml:3597: The following error occurred while executing this line:
E:\SOURCE\JavaF­XApplication12\nbpro­ject\jfx-impl.xml:1251: The following error occurred while executing this line:
E:\SOURCE\JavaF­XApplication12\nbpro­ject\jfx-impl.xml:1259: Unable to create javax script engine for javascript

...

BUILD SUCCESSFUL (total time: 2 seconds)

Zkusil jsem: Zkoušel jsem různé verze JDK i JavaFX.
Také jsem zkoušel vytvořit projekt v Java Ant, ale i po ručním nastavení knihoven JavaFX nelze aplikaci kompilovat do nějaké spustitelné formy pro distribuci.

Chci docílit: Snažím se vytvořit jednoduchý webový prohlížeč pomocí JavaFX - WebView, který již mám hotový a ten odeslat pro otestování ve spustitelné formě.
Pokusy mne dovedly až k otestování kompilace projektu Hello World, které NetBeans vygeneruje a které také nefungují.
Nevím, jestli je problém přímo v NetBeans.

 
Odpovědět
13. ledna 10:33
Avatar
Atrament
Super redaktor
Avatar
Odpovídá na zyxzyx
Atrament:13. ledna 21:17

Jakou máš verzi Netbeans a jak přesně vytváříš ten projekt? Myslím tím, co přesně vybereš v tom dialogu New Project

 
Nahoru Odpovědět
13. ledna 21:17
Avatar
zyxzyx
Člen
Avatar
zyxzyx:13. ledna 21:37

Verze NetBeans je 12.6.
Platformu JDK používám Azul Zulu Builds kvůli implementovanému JavaFX.
Při vytváření projektu zvolím Java with Ant -> JavaFX -> Java Application.
Jen vygeneruji nový projekt a dám Clean and Build a stane to, co jsem popsal. Soubor JAR se nevytvoří, pouze složka build.

Jinak jsem už trochu pokročil a podaří se mi JAR vygenerovat, ale zase narážím na to, že to funguje jen pokud se projekt spustí v NetBeans, ale z příkazového řádku ne. Tam zase narážín na problém "Could not find or load main class", což jak koukám po netu nejsem sám.

 
Nahoru Odpovědět
13. ledna 21:37
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Atrament
Super redaktor
Avatar
Odpovídá na zyxzyx
Atrament:13. ledna 23:23

No hele já JavuFX nepoužívám a znám ji jenom tak letmo, ale strávil jsem teďka chvilku zkoumáním co a jak, a nejschůdnější se mi jeví vytvořit projekt Java with Maven - FXML JavaFX Maven Archetype. To si při prvním spuštění postahuje co je třeba. Pak akorát spustíš mavenovský goal javafx:jlink a to ti vytvoří adresář target/image kde máš tu aplikaci. V pom.xml můžeš v pluginu javafx-maven-plugin nastavit pár šikovných věcí, tak aby ti to vytvořilo spustitelný skript, kterým tu aplikaci snadno spustíš, a nebo aby ti to rovnou vyplivlo celou aplikaci zabalenou v zipu. Info o tomhle všem je zde

 
Nahoru Odpovědět
13. ledna 23:23
Avatar
zyxzyx
Člen
Avatar
zyxzyx:14. ledna 7:04

Díky, vyzkoušel jsem, ale je problém rozchodit WebView.
Nastavil jsem aktuální hodnoty dependency, ale ani tak není knihovna web dostupná.

<dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>17.0.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-web</artifactId>
            <version>17.0.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>17.0.0.1</version>
        </dependency>
 
Nahoru Odpovědět
14. ledna 7:04
Avatar
Atrament
Super redaktor
Avatar
Odpovídá na zyxzyx
Atrament:14. ledna 23:50

Zkus změnit tu verzi na 17.0.1, s tou jsem měl větší štěstí. A vyzkoumal jsem, že je pak ještě třeba dodat do souboru module-info.java, který je v src/main/java řádek

requires javafx.web;

pak to funguje

 
Nahoru Odpovědět
14. ledna 23:50
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.