RISOLTO Java8 + GUI

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.
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...
 
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.
 
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.
 
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.
 
[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.
 
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
 
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.
Pubblicità
Pubblicità
Indietro
Top