RISOLTO Java8 + GUI

Stato
Discussione chiusa ad ulteriori risposte.

pabloski

Utente Èlite
2,868
916
Ho installato il nuovo IntelliJ IDEA e come immaginavo non è, a mio avviso, un ambiente per principianti. Non sono nemmeno riuscito a capire se è posssibile impostare l'italiano come lingua come preferenza.:varie13:

Ha molte opzioni e all'inizio può spaesare. La schermata iniziale è curiosa, nel senso che è una piccola finestrella da cui si può, tra le altre cose, accedere alle preferenze, dov'è possibile settare anche la lingua ( oltre ad altre mille cose ).

Però bastano due click per creare un progetto JavaFX, dopo di che si ha a dispozione tutto quanto necessario per programmare, tra cui supporto per la creazione di GUI WYSIWYG, code highlighting, completamento, ecc...
 

petrusic

Utente Attivo
227
20
CPU
AMD Athlon - X86_64
Scheda Madre
Acer RS780HVF
HDD
SSD PLUS da 240GB (ospita 3 S.O Linux), WDC WD10EFRX-68F da 1000GB (ospita solo archivi dati)
RAM
n.2 DDR" per 2GB
OS
fedora 28 Mate, Ubuntu Mate, Linux Mint 19
Non. Non va, non posso vedere il comportamento dell'esercizio, perchè produce ancora errore per mancanza di JDK.
É inutile, non ne ho le capacità ci rinunzio, anzi penso che rinuncerò anche a Java.
Dopo tanti tentativi :varie13: sono stanco e traumatizzato.
 

pabloski

Utente Èlite
2,868
916
Non. Non va, non posso vedere il comportamento dell'esercizio, perchè produce ancora errore per mancanza di JDK.
É inutile, non ne ho le capacità ci rinunzio, anzi penso che rinuncerò anche a Java.
Dopo tanti tentativi :varie13: sono stanco e traumatizzato.

Beh l'ultimo tentativo si potrebbe fare usando il compilare javac a mano da terminale. Bastano un paio di opzioni per aggiungere JavaFX ai framework da utilizzare. Se JavaFX è installato nella classpath di Java ( e dovrebbe essere così usando i pacchetti fedora ), basta dare il solito comando javac col nome del file Java da compilare.
 

petrusic

Utente Attivo
227
20
CPU
AMD Athlon - X86_64
Scheda Madre
Acer RS780HVF
HDD
SSD PLUS da 240GB (ospita 3 S.O Linux), WDC WD10EFRX-68F da 1000GB (ospita solo archivi dati)
RAM
n.2 DDR" per 2GB
OS
fedora 28 Mate, Ubuntu Mate, Linux Mint 19
Beh l'ultimo tentativo si potrebbe fare usando il compilare javac a mano da terminale. Bastano un paio di opzioni per aggiungere JavaFX ai framework da utilizzare. Se JavaFX è installato nella classpath di Java ( e dovrebbe essere così usando i pacchetti fedora ), basta dare il solito comando javac col nome del file Java da compilare.
Non so quali opzioni potrei aggiungere. Da come scrivi, credo che tu non utlizzi JavaFX dentro Linux, comunque ho tirato fuori un elenco delle directory in cui Linux ha immagazzinato l'ambiente software di Java.
Codice:
# tree /usr/lib/jvm
/usr/lib/jvm
├── java -> /etc/alternatives/java_sdk
├── java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0
├── java-1.8.0-openjdk -> /etc/alternatives/java_sdk_1.8.0_openjdk
├── java-1.8.0-openjdk-1.8.0.162-3.b12.fc28.x86_64
│   └── jre
│       └── lib
│           └── security
│               └── policy
│                   ├── limited
│                   └── unlimited
├── java-1.8.0-openjdk-1.8.0.181.b15-5.fc28.x86_64
│   └── jre
│       └── lib
│           └── ext
│               ├── java-atk-wrapper.jar -> /usr/lib64/java-atk-wrapper/java-atk-wrapper.jar
│               └── jfxrt.jar -> /usr/lib/jvm/openjfx/rt/lib/ext/jfxrt.jar
├── java-1.8.0-openjdk-1.8.0.191.b12-8.fc28.x86_64
│   ├── bin
│   │   ├── appletviewer
│   │   ├── extcheck
│   │   ├── idlj
│   │   ├── jar
│   │   ├── jarsigner
│   │   ├── java
│   │   ├── javac
│   │   ├── javadoc
│   │   ├── javah
│   │   ├── javap
│   │   ├── java-rmi.cgi
│   │   ├── jcmd
│   │   ├── jconsole
│   │   ├── jdb
│   │   ├── jdeps
│   │   ├── jhat
│   │   ├── jinfo
│   │   ├── jjs
│   │   ├── jmap
│   │   ├── jps
│   │   ├── jrunscript
│   │   ├── jsadebugd
│   │   ├── jstack
│   │   ├── jstat
│   │   ├── jstatd
│   │   ├── keytool
│   │   ├── native2ascii
│   │   ├── orbd
│   │   ├── pack200
│   │   ├── policytool
│   │   ├── rmic
│   │   ├── rmid
│   │   ├── rmiregistry
│   │   ├── schemagen
│   │   ├── serialver
│   │   ├── servertool
│   │   ├── tnameserv
│   │   ├── unpack200
│   │   ├── wsgen
│   │   ├── wsimport
│   │   └── xjc
│   ├── include
│   │   ├── classfile_constants.h
│   │   ├── jawt.h
│   │   ├── jdwpTransport.h
│   │   ├── jni.h
│   │   ├── jvmticmlr.h
│   │   ├── jvmti.h
│   │   └── linux
│   │       ├── jawt_md.h
│   │       └── jni_md.h
│   ├── jre
│   │   ├── bin
│   │   │   ├── java
│   │   │   ├── jjs
│   │   │   ├── keytool
│   │   │   ├── orbd
│   │   │   ├── pack200
│   │   │   ├── policytool
│   │   │   ├── rmid
│   │   │   ├── rmiregistry
│   │   │   ├── servertool
│   │   │   ├── tnameserv
│   │   │   └── unpack200
│   │   └── lib
│   │       ├── amd64
│   │       │   ├── client
│   │       │   ├── jli
│   │       │   │   └── libjli.so
│   │       │   ├── jvm.cfg
│   │       │   ├── libattach.so
│   │       │   ├── libawt_headless.so
│   │       │   ├── libawt.so
│   │       │   ├── libawt_xawt.so
│   │       │   ├── libdecora_sse.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libdecora_sse.so
│   │       │   ├── libdt_socket.so
│   │       │   ├── libfontmanager.so
│   │       │   ├── libglass.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libglass.so
│   │       │   ├── libhprof.so
│   │       │   ├── libinstrument.so
│   │       │   ├── libj2gss.so
│   │       │   ├── libj2pcsc.so
│   │       │   ├── libj2pkcs11.so
│   │       │   ├── libjaas_unix.so
│   │       │   ├── libjava_crw_demo.so
│   │       │   ├── libjavafx_font_freetype.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libjavafx_font_freetype.so
│   │       │   ├── libjavafx_font_pango.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libjavafx_font_pango.so
│   │       │   ├── libjavafx_font.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libjavafx_font.so
│   │       │   ├── libjavafx_iio.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libjavafx_iio.so
│   │       │   ├── libjavajpeg.so
│   │       │   ├── libjava.so
│   │       │   ├── libjawt.so
│   │       │   ├── libjdwp.so
│   │       │   ├── libjsdt.so
│   │       │   ├── libjsig.so
│   │       │   ├── libjsoundalsa.so
│   │       │   ├── libjsound.so
│   │       │   ├── liblcms.so
│   │       │   ├── libmanagement.so
│   │       │   ├── libmlib_image.so
│   │       │   ├── libnet.so
│   │       │   ├── libnio.so
│   │       │   ├── libnpt.so
│   │       │   ├── libprism_common.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libprism_common.so
│   │       │   ├── libprism_es2.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libprism_es2.so
│   │       │   ├── libprism_sw.so -> /usr/lib/jvm/openjfx/rt/lib/amd64/libprism_sw.so
│   │       │   ├── libsaproc.so
│   │       │   ├── libsctp.so
│   │       │   ├── libsplashscreen.so
│   │       │   ├── libsunec.so
│   │       │   ├── libunpack.so
│   │       │   ├── libverify.so
│   │       │   ├── libzip.so
│   │       │   └── server
│   │       │       ├── classes.jsa
│   │       │       ├── libjsig.so -> ../libjsig.so
│   │       │       ├── libjvm.so
│   │       │       └── Xusage.txt
│   │       ├── calendars.properties
│   │       ├── charsets.jar
│   │       ├── classlist
│   │       ├── cmm
│   │       │   ├── CIEXYZ.pf
│   │       │   ├── GRAY.pf
│   │       │   ├── LINEAR_RGB.pf
│   │       │   ├── PYCC.pf
│   │       │   └── sRGB.pf
│   │       ├── content-types.properties
│   │       ├── currency.data
│   │       ├── ext
│   │       │   ├── cldrdata.jar
│   │       │   ├── dnsns.jar
│   │       │   ├── jaccess.jar
│   │       │   ├── java-atk-wrapper.jar -> /usr/lib64/java-atk-wrapper/java-atk-wrapper.jar
│   │       │   ├── jfxrt.jar -> /usr/lib/jvm/openjfx/rt/lib/ext/jfxrt.jar
│   │       │   ├── localedata.jar
│   │       │   ├── meta-index
│   │       │   ├── nashorn.jar
│   │       │   ├── sunec.jar
│   │       │   ├── sunjce_provider.jar
│   │       │   ├── sunpkcs11.jar
│   │       │   └── zipfs.jar
│   │       ├── flavormap.properties
│   │       ├── hijrah-config-umalqura.properties
│   │       ├── images
│   │       │   └── cursors
│   │       │       ├── cursors.properties
│   │       │       ├── invalid32x32.gif
│   │       │       ├── motif_CopyDrop32x32.gif
│   │       │       ├── motif_CopyNoDrop32x32.gif
│   │       │       ├── motif_LinkDrop32x32.gif
│   │       │       ├── motif_LinkNoDrop32x32.gif
│   │       │       ├── motif_MoveDrop32x32.gif
│   │       │       └── motif_MoveNoDrop32x32.gif
│   │       ├── javafx.properties -> /usr/lib/jvm/openjfx/rt/lib/javafx.properties
│   │       ├── jce.jar
│   │       ├── jexec
│   │       ├── jfxswt.jar -> /usr/lib/jvm/openjfx/rt/lib/jfxswt.jar
│   │       ├── jsse.jar
│   │       ├── jvm.hprof.txt
│   │       ├── logging.properties
│   │       ├── management
│   │       │   ├── jmxremote.access
│   │       │   ├── jmxremote.password.template
│   │       │   ├── management.properties
│   │       │   └── snmp.acl.template
│   │       ├── management-agent.jar
│   │       ├── meta-index
│   │       ├── net.properties
│   │       ├── psfontj2d.properties
│   │       ├── psfont.properties.ja
│   │       ├── resources.jar
│   │       ├── rt.jar
│   │       ├── security
│   │       │   ├── blacklisted.certs
│   │       │   ├── cacerts -> /etc/pki/java/cacerts
│   │       │   ├── java.policy
│   │       │   ├── java.security
│   │       │   ├── nss.cfg
│   │       │   └── policy
│   │       │       ├── limited
│   │       │       │   ├── local_policy.jar
│   │       │       │   └── US_export_policy.jar
│   │       │       └── unlimited
│   │       │           ├── local_policy.jar
│   │       │           └── US_export_policy.jar
│   │       ├── sound.properties
│   │       └── tzdb.dat -> /usr/share/javazi-1.8/tzdb.dat
│   ├── lib
│   │   ├── amd64
│   │   │   ├── jli
│   │   │   │   └── libjli.so
│   │   │   └── libjawt.so
│   │   ├── ct.sym
│   │   ├── dt.jar
│   │   ├── ir.idl
│   │   ├── jconsole.jar
│   │   ├── jexec
│   │   ├── orb.idl
│   │   ├── sa-jdi.jar
│   │   └── tools.jar
│   └── tapset
│       ├── hotspot1.8.0.191.b12-8.fc28.x86_64.stp
│       ├── hotspot_gc1.8.0.191.b12-8.fc28.x86_64.stp
│       ├── hotspot_jni1.8.0.191.b12-8.fc28.x86_64.stp
│       └── jstack1.8.0.191.b12-8.fc28.x86_64.stp
├── java-openjdk -> /etc/alternatives/java_sdk_openjdk
├── jre -> /etc/alternatives/jre
├── jre-1.8.0 -> /etc/alternatives/jre_1.8.0
├── jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
├── jre-1.8.0-openjdk-1.8.0.191.b12-8.fc28.x86_64 -> java-1.8.0-openjdk-1.8.0.191.b12-8.fc28.x86_64/jre
├── jre-openjdk -> /etc/alternatives/jre_openjdk
└── openjfx
    └── rt
        └── lib
            ├── amd64
            │   ├── libdecora_sse.so
            │   ├── libglass.so
            │   ├── libjavafx_font_freetype.so
            │   ├── libjavafx_font_pango.so
            │   ├── libjavafx_font.so
            │   ├── libjavafx_iio.so
            │   ├── libprism_common.so
            │   ├── libprism_es2.so
            │   └── libprism_sw.so
            ├── ext
            │   └── jfxrt.jar
            ├── javafx.properties
            └── jfxswt.jar

49 directories, 198 files
Probabilmente mancano altre JDK legate a intellijIDEA. Lo stesso vale per NetBeans.
Ho provato a compilare ed eseguire il programmino di esercitazione con JavaFX "MiaPrimaJavaFX.java" da linea di comando, come mi hai consigliato:
Codice:
$ javac MiaPrimaJavaFX/src/miaprimajavafx/MiaPrimaJavaFX.java
[petrus@localhost ~]$
$ cd MiaPrimaJavaFX/src/miaprimajavafx
[petrus@localhost miaprimajavafx]$ ./MiaPrimaJavaFX.class
bash: ./MiaPrimaJavaFX.class: cannot execute binary file: Formato eseguibile non valido
come puoi vedere, la compilazione è andata bene, ma l'esecuzione poi da errore per formato non valido. Devo dedurre che un programma generetao da un IDE specifico di Java debba essere compilato solo attraverso lo stesso IDE.
Per completare lo stato delle directory pertinenti il mio primo esercizio in javaFx, riporto anche l'albero completo di directory e file :
Codice:
# tree MiaPrimaJavaFX
MiaPrimaJavaFX
├── build
│   ├── built-jar.properties
│   ├── classes
│   │   └── miaprimajavafx
│   │       ├── MiaPrimaJavaFX$1.class
│   │       └── MiaPrimaJavaFX.class
│   ├── empty
│   └── generated-sources
│       └── ap-source-output
├── build.xml
├── dist
├── manifest.mf
├── nbproject
│   ├── build-impl.xml
│   ├── configs
│   │   ├── Run_as_WebStart.properties
│   │   └── Run_in_Browser.properties
│   ├── genfiles.properties
│   ├── jfx-impl.xml
│   ├── private
│   │   ├── configs
│   │   │   ├── Run_as_WebStart.properties
│   │   │   └── Run_in_Browser.properties
│   │   ├── private.properties
│   │   └── private.xml
│   ├── project.properties
│   └── project.xml
└── src
    └── miaprimajavafx
        └── MiaPrimaJavaFX.java

13 directories, 17 files

Ciao.
 

pabloski

Utente Èlite
2,868
916
[petrus@localhost miaprimajavafx]$ ./MiaPrimaJavaFX.class

Beh no. Il comando lì è java MiaPrimaJavaFX. I file class non vengono usati da Linux direttamente, ma c'è bisogno di invocare la java virtual machine.

Comunque da quella lista di file si vede che JavaFX è installata nel posto giusto.
 

petrusic

Utente Attivo
227
20
CPU
AMD Athlon - X86_64
Scheda Madre
Acer RS780HVF
HDD
SSD PLUS da 240GB (ospita 3 S.O Linux), WDC WD10EFRX-68F da 1000GB (ospita solo archivi dati)
RAM
n.2 DDR" per 2GB
OS
fedora 28 Mate, Ubuntu Mate, Linux Mint 19
Beh no. Il comando lì è java MiaPrimaJavaFX. I file class non vengono usati da Linux direttamente, ma c'è bisogno di invocare la java virtual machine.

Hai ragione, già me n'ero scordato:
Codice:
[petrus@localhost miaprimajavafx]$ ls -l
totale 12
-rwxrwxrwx. 1 petrus petrus  938 13 nov 14.57 'MiaPrimaJavaFX$1.class'
-rwxrwxrwx. 1 petrus petrus 1183 13 nov 14.57  MiaPrimaJavaFX.class
-rwxrwxrwx. 1 petrus petrus 1305 10 nov 11.01  MiaPrimaJavaFX.java
[petrus@localhost miaprimajavafx]$ java MiaPrimaJavaFX
Errore: impossibile trovare o caricare la classe principale MiaPrimaJavaFX
Comunque, non funziona lo stesso.

Comunque da quella lista di file si vede che JavaFX è installata nel posto giusto.
Probabilmente però non basta, bisogna ancora aggiungere qualcosa relativo a JDK di cui non mi rendo conto.
Ciao
 

pabloski

Utente Èlite
2,868
916
Hai ragione, già me n'ero scordato:
Codice:
[petrus@localhost miaprimajavafx]$ ls -l
totale 12
-rwxrwxrwx. 1 petrus petrus  938 13 nov 14.57 'MiaPrimaJavaFX$1.class'
-rwxrwxrwx. 1 petrus petrus 1183 13 nov 14.57  MiaPrimaJavaFX.class
-rwxrwxrwx. 1 petrus petrus 1305 10 nov 11.01  MiaPrimaJavaFX.java
[petrus@localhost miaprimajavafx]$ java MiaPrimaJavaFX
Errore: impossibile trovare o caricare la classe principale MiaPrimaJavaFX
Comunque, non funziona lo stesso.

La classe nel file .java si chiama MiaPrimaJavaFX, comprese maiuscole e minuscole? Se si, allora può essere che devi aggiungere il path corrente alla class path, cioè

java -cp . MiaPrimaJavaFX

Probabilmente però non basta, bisogna ancora aggiungere qualcosa relativo a JDK di cui non mi rendo conto.
Ciao

Beh si, il qualcosa è la classpath, cioè la serie di directory in cui si trovano i file .class e .jar. Ma su Linux quella è settata di default e tutti i pacchetti Java installati tramite il package manager vengono messi in posti dove la classpath punta. Per cui non bisogna fare niente.
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!