Italian [B4J]Comportamento anomalo...

stefanoxjx

Active Member
Licensed User
Longtime User
Ciao a tutti, ho dei comportamenti anomali con un programma scritto in B4J e volevo capire se voi avete una qualche idea su quali possano essere i motivi.
Anomialia N. 1:
Questo è il programma in esecuzione tramite B4J:
upload_2015-2-10_15-50-13.png

e questo è il programma in esecuzione direttamente dal pacchetto JAR (notare i numeri che non appaiono):
upload_2015-2-10_15-51-6.png

Anomalia N. 2:
Il programma se fatto girare tramite B4J funziona perfettamente e senza dare nessuna segnalazione di errore, mentre se fatto girare in runtime, a circa 3/4 dell'operazione che dovrebbe fare si blocca.

Ovviamente tutto questo sempre sullo stesso PC (con windows 7), ma ho fatto delle prove anche su altri 2 PC (uno con windows XP e uno con Linux) e i problemi sono gli stessi.

Avete qualche idea sulle possibili cause?
Grazie.
Ciao.
 

maxware

Well-Known Member
Licensed User
Longtime User
Ciao Stefano
sicuro che nella path hai la cartella corretta di java
se lo esegui da b4j usa la java presente in path
ma puo' essere che eseguindola esternamente usi la version java installata
Mamo

..... ricontrollando pero il javac.exe e' unico quindi non penso
 
Last edited:

stefanoxjx

Active Member
Licensed User
Longtime User
Ciao Max e grazie della risposta.
Effettivamente hai ragione, su B4J ho impostato come percorso per java: C:\Program Files\Java\jdk1.7.0_71\bin\javac.exe
e invece quando vado ad eseguire il jar si va a prendere la versione 1.8.0.31.
Ho visto che si va a prendere comunque la versione 1.8.0.31 anche se ho modificato il path in modo che punti alla cartella jdk1.7.0_71...
Per ovviare a questo problema ho creato un file batch che lancia java dalla cartella corretta.
E' il modo giusto per risolvere o ci sono strade migliori?
Non ho ancora provato a vedere se funziona al 100% perchè al momento sono impossibilitato, domani faccio comunque una prova.
 

udg

Expert
Licensed User
Longtime User
Ciao,
guarda tra le variabili d'ambiente. Potrebbe esserci una JAVA_HOME che punta alla versione 1.8 e magari questa prevale sulle altre impostazioni.
 

stefanoxjx

Active Member
Licensed User
Longtime User
Gia' fatto e anche modificato il percorso.
Sulle variabili d'ambiente c'era un path che portava ad una cartella javapath dove c'erano dei link simbolici che puntavano a java.exe javaw.exe ecc. della versione 1.8.
Ho modificato il path sulle variabili d'ambiente, ma continuava a lanciare la versione 1.8 di java.
Allora ho rifatto i link simbolici in modo che puntassero alla versione di java che voglio io, ma niente.
Non so dove si vada a trovare i percorsi della versione 1.8 ma continua a lanciare quella versione.
L'unico modo che ho trovato finora per risolvere è quello del file batch, però tutto questo sul pc dove ho sviluppato il programma.
Come risolvo sugli altri PC dove c'è solo l'ultima versione installata?
 

udg

Expert
Licensed User
Longtime User
Rileggendo il thread direi che il problema principale sia sempre il fatto che con due versioni diverse di java ottieni risultati diversi. E siccome non puoi sapere in anticipo quale versione sarà presente sui vari PC (o se ci saranno più versioni) il guaio è grosso (a meno di non obbligare tutti gli utenti a caricare una specifica versione di java)
Possibile che la versione di JavaFX Builder abbia a che fare con il problema?
Personalmente ho utilizzato B4J solo come back-end silenzioso, senza UI, quindi non saprei se allineando tutto l'ambiente di sviluppo (Java, B4J e JavaFX) alle ultime versioni possa aiutare o meno; non vorrei che il problema possa nascere dal mix di versioni più o meno aggiornate (e dovuto ovviamente a cattiva o incompleta compatibilità con versioni precedenti).
Se mi dovesse venire in mente altro, ti farò sapere.
 
Last edited:

stefanoxjx

Active Member
Licensed User
Longtime User
Una volta, parlando con un ragazzo che fa informatica all'università, mi diceva che java ha proprio il problema che basta un cambio di versione per vedersi il software non girare più.
Li per li non gli ho dato peso, ma solo perchè non era mia intenzione sviluppare in java.
Purtroppo, come si dice, tutti i nodi arrivano al pettine :(
Provo a chiedere anche a Erel, vediamo se mi può aiutare.
 

magoandroid

Member
Licensed User
Longtime User
Buongiorno a tutti.

Una volta, parlando con un ragazzo che fa informatica all'università, mi diceva che java ha proprio il problema che basta un cambio di versione per vedersi il software non girare più.

@stefanoxjx, è in parte vero quello che ti è stato riferito.
Tempo fa, mi sono trovato con una applicazione scritta in B4J (jdk1.7.0_51), che su alcuni PC aziendali non funzionava, perchè presente una ver. 1.6.
Questa vecchia versione non poteva/doveva essere aggiornata, perchè alcuni importanti programmi in uso avrebbero smesso di funzionare.
Usa soluzione l'ho trovata utilizzando Launch4j (Cross-platform Java executable wrapper).

Un cordiale saluto.
MAgo
 

stefanoxjx

Active Member
Licensed User
Longtime User
Ciao magoandroid, il problema che hai avuto è abbastanza comprensibile visto che il programma era stato compilato con la versione 1.7 e sui PC c'era una versione meno recente.
Il mio problema invece è che non funziona con versioni diverse da quella con cui è stato compilato.
Erel dice che B4J è compatibile anche con Java 8, mi riservo di fare ulteriori verifiche, ma a me non risulta :(
Launch4j di cui parli è stata discussa direttamente anche da Erel (https://www.b4x.com/android/forum/threads/create-windows-native-executables-exe-files.35863/) e infatti dovevo trovare il tempo di guardarmi anche quella.
Sarebbe interessante se il file exe inglobasse anche la versione di java voluta in modo da eseguire il programma sempre e solo con quella versione.
Probabilmente lo fa, ma devo ancora adare a vedere.
 

stefanoxjx

Active Member
Licensed User
Longtime User
Ciao Max,
l'unica novità è che ho risolto installando la versione 7 di java nei pc dove deve girare questo programma, ed ho inpachettato il tutto con Launch4J dando i limiti di versione utilizzabili.
Erel insiste a dire che java 7 è compatibile con java 8 anche se da vari test e debug effettuati a me non risulta proprio.
Tra l'altro, un errore sul codice ci può stare, anche se non è questo il caso, ma la non compatibilità si vede già da subito dall'interfaccia grafica dove di codice mio non ce ne ma fa tutto il designer.
 

stefanoxjx

Active Member
Licensed User
Longtime User
Magari scrivilo anche a Erel così capisce che forse non c'è tutta questa compatibilità tra java 7 e 8.
 

stefanoxjx

Active Member
Licensed User
Longtime User
Si, ho risolto anch'io allo stesso modo.
Ovviamente nel pc dovrà esserci installata anche la versione 7 di java, altrimenti dirà solo che non trova la versione.
 

stefanoxjx

Active Member
Licensed User
Longtime User
Bene, ho accodato anche il mio post, così forse Erel prenderà più in considerazione la cosa.
Ho visto che hai scritto in Italiano; ma ti rispondono lo stesso anche se in italiano con traduzione in inglese fatta con google?
Io ho sempre scritto tutto in inglese (sicuramente con molti strafalcioni) perchè immaginavo che altrimenti non sarebbero mai arrivate risposte.
 
Top