[Risolto] Java Runtime Environment

Testato questo semplice convertitore di
gradi e funziona perfettamente :

http://java.sun.com/docs/books/tutorialJWS/uiswing/learn/ex6/CelsiusConverter.jnlp

ma continua a darmi errore sulla applicazione delle presenze.
Se ci fosse un problema sul jnlp credo non lo aprirebbe java nemmeno
sotto wundows.

…forse il problema non era icedtea, ma l’applicazione.
Controlla se l’altro OS usa la medesima versione di java; ad assoluta parità di condizioni, temo sia da considerare il debuggare l’applicazione in sè.
EDIT: controlla

$ /usr/java/default/bin/javaws --version

Stavo pensandolo pure io ma è scaduta la sessione perché mi hanno chiamato per debellare il virus della polizia postale (mannaggia a windows).

Potrebbe essere qualche istruzione che viene chiamata nel modo sbagliato?
ad es. c:\path\dell\istruzione

Abbiamo credo un dettaglio in più :

Marco@nb511243:/usr/java/default/bin => jawaws --version bash: jawaws: comando non trovato... Marco@nb511243:/usr/java/default/bin =>

mentre se do :

Marco@nb511243:/usr/java/default/bin => java -version java version "1.7.0_21" Java(TM) SE Runtime Environment (build 1.7.0_21-b11) Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode) Marco@nb511243:/usr/java/default/bin =>

$ alternatives --config javaws $ ll $(which javaws) $ ll /usr/java/default/bin/javaws $ rpm -qf /usr/java/default/bin/javaws

Ecco gli output dei comandi :

[code]root@nb511243:/ => alternatives --config javaws

C’è 1 programma che fornisce ‘javaws’.

Selezione Comando

*+ 1 /usr/java/default/bin/javaws

Invio per mantenere l’attuale selezione+], o inserire il numero di selezione:
root@nb511243:/ => ll $(which javaws)
lrwxrwxrwx. 1 root root 24 24 mag 09.31 /bin/javaws -> /etc/alternatives/javaws
root@nb511243:/ => ll /usr/java/default/bin/javaws
-rwxr-xr-x. 1 root root 126624 4 apr 13.34 /usr/java/default/bin/javaws
root@nb511243:/ => rpm -qf /usr/java/default/bin/javaws
jre-1.7.0_21-fcs.x86_64[/code]

$ ll $(which javaws)

da utente.

ecco :

Marco@nb511243:/home/Marco => ll $(which javaws) lrwxrwxrwx. 1 root root 24 24 mag 09.31 /usr/bin/javaws -> /etc/alternatives/javaws Marco@nb511243:/home/Marco =>

$ javaws -version

Ecco l’esito del comando sia da utente che da root :

[code]Marco@nb511243:/home/Marco => javaws -version
Java™ Web Start 10.21.2.11-fcs
Uso: javaws [opzioni di esecuzione]
javaws [opzioni di controllo]

dove le opzioni di esecuzione sono:
-verbose visualizza output aggiuntivo
-offline esegue l’applicazione in modalità non in linea
-system esegue l’applicazione solo dalla cache del sistema
-Xnosplash esegue l’applicazione senza visualizzare la schermata iniziale
-J fornisce l’opzione alla VM
-wait avvia il processo Java e ne attende il completamento

le opzioni di controllo sono:
-viewer mostra il visualizzatore cache nel pannello di controllo Java
-clearcache rimuove tutte le applicazioni non installate dalla cache
-uninstall rimuove tutte le applicazioni dalla cache
-uninstall rimuove l’applicazione dalla cache
-import [opzioni di importazione] importa l’applicazione nella cache

le opzioni di importazione sono:
-silent esegue l’installazione in background (senza un’interfaccia utente)
-system importa l’applicazione nella cache del sistema
-codebase recupera le risorse dal codebase specificato
-shortcut installa i collegamenti senza chiedere conferma all’utente
-association installa le associazioni senza chiedere conferma all’utente

Marco@nb511243:/home/Marco => su -
Password:
root@nb511243:/root => javaws -version
Java™ Web Start 10.21.2.11-fcs
Uso: javaws [opzioni di esecuzione]
javaws [opzioni di controllo]

dove le opzioni di esecuzione sono:
-verbose visualizza output aggiuntivo
-offline esegue l’applicazione in modalità non in linea
-system esegue l’applicazione solo dalla cache del sistema
-Xnosplash esegue l’applicazione senza visualizzare la schermata iniziale
-J fornisce l’opzione alla VM
-wait avvia il processo Java e ne attende il completamento

le opzioni di controllo sono:
-viewer mostra il visualizzatore cache nel pannello di controllo Java
-clearcache rimuove tutte le applicazioni non installate dalla cache
-uninstall rimuove tutte le applicazioni dalla cache
-uninstall rimuove l’applicazione dalla cache
-import [opzioni di importazione] importa l’applicazione nella cache

le opzioni di importazione sono:
-silent esegue l’installazione in background (senza un’interfaccia utente)
-system importa l’applicazione nella cache del sistema
-codebase recupera le risorse dal codebase specificato
-shortcut installa i collegamenti senza chiedere conferma all’utente
-association installa le associazioni senza chiedere conferma all’utente

root@nb511243:/root =>[/code]

Aggiungo i risultati del test jaa eseguito sulla pagina seguente :

http://www.java.com/it/download/testjava.jsp

La versione di java in uso è funzionante Versione di java più recentemente installata La configurazione di java più recente in uso è la seguente: Fornitore: Oracle Corporation Versione: Java SE 7 Upgrade 21 Sistema Operativo: Linux 3.9.2-200.fc18.x86_64 Java Architettura 64-bit

E mi chiedo come mai il test va a buon fine e viene visto
l’ambiente mentre dai test che mi sta facendo fare tempus sembra che
ci siamo delle imprecisioni ?

Aggiungo che per escludere si trattasse
di un problema di permission ho fatto partire
Firefox da root ma senza che la cosa cambiasse.
Ci deve essere un problema nella installaizone proprio
in se.
Solo che i test online vanno tutti bene.

Lanciare firefox da root (con tanto di plugin java attivato) è una pessima idea.
Magari SElinux in modalità permissiva, ma firefox da root no.
Rischi veramente solo di peggiorare la situazione.
Java Oracle è ora installato correttamente; se javaws (o /usr/java/default/bin/javaws) non avvia quello specifico file ma avvia tutti gli altri, il problema è quel file.
“L’altro SO lo avvia” non è di per sè indicativo; controlla la versione di Java Oracle sull’altro SO.

Grazie Tempus per la pazienza.
La versione di Java è la medesima in entrambi gli ambienti e
a questo punto penso tu abbia ragione che si tratti di un problema nel
file in se.
Anche perché qualsiasi altra applicazione java provo a far partire viene eseguita.
A questo punto penso si possa etichettare come “risolto”.
Grazie ancora.

Mi sorge un piccolo dubbio.

Che tu sappia questa applicazione su win scrive file (anche di log) in c:\ ?

Se scarichi l jnlp in locale e lo avvii a mano senza browser ?

per esempio:

$ javaws -verbose CelsiusConverter.jnlp

Un’altra possibilità è l’applicazione usi qualcosa tipo

Runtime.getRuntime().exec(...);

per eseguire processi esterni.
Un’altra possibilità è che venga utilizzato qualche metodo nativo scritto in c o c++.
Un’altra ancora: mi sembra di ricordare applicazioni che richiedono una versione particolare di java (esattamente quella, non quella o una superiore).
Ancora: potrebbe essere utilizzato un qualche database, e magari il database è presente in Windows, ma non in Linux…

Appunto … write once debug everywhere :smiley:

Comunque se la lancia da riga di comando in modo verbose qualche info in più ci dirà

Cerco di dare tutte le info per capire meglio da cosa possa dipendere.
Quando ho provato all’inizio a caricare l’applicazione con IcedTea
la caricava tranquillamente. L’unico problema era che non funzionava proprio benissimo
nel senso che se cliccavo su un tab qualsiasi tipo “preferenze” si apriva la tendina ma
se andavo a scegliere una sottovoce qualsiasi si richiudeva la tendina senza fare nulla.
Mentre se aprendo il menù e volendo, sempre per esempio, andare su “Impostazioni”,
digitando !I" da tastiera apriva il relativo menu.
Quindi non funzionando proprio a dovere ho provato a installare Oracle Java.
E la versione che ho qui è la medesima che si trova su Windows.
Detto questo quindi escluderei che si tratti di qualcosa che l’applicazione usa e che linux non ha
altrimenti non avrebbe funzionato nemmeno con IcedTea, mentre come detto dava solo qualche piccolo malfunzionamento
ma partiva. Mentre ora non la carica proprio. Per inciso l’applicazione mi serve per caricare le mie presenze per
l’ufficio del personale.

Ho dato il comando

javaws -verbose rasria.jnlp

ma l’output è talmente grande che è improponibile incolarlo qui.
Incollo solo le ultime righe prima che comparisse il popup “Impossibile avviare l’applicazione”

[Loaded com.sun.javaws.ui.SecureStaticVersioning from /usr/java/jre1.7.0_21/lib/javaws.jar] [Loaded com.sun.deploy.security.SessionCertStore$2 from /usr/java/jre1.7.0_21/lib/deploy.jar] [Loaded java.io.DataOutputStream from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.security.DigestOutputStream from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded com.sun.deploy.Environment$3 from /usr/java/jre1.7.0_21/lib/deploy.jar] [Loaded java.lang.ProcessBuilder from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.ProcessImpl from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.Process from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.UNIXProcess from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.UNIXProcess$1 from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.UNIXProcess$ProcessReaperThreadFactory from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.UNIXProcess$ProcessReaperThreadFactory$1 from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.util.concurrent.SynchronousQueue from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.util.concurrent.SynchronousQueue$Transferer from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.util.concurrent.SynchronousQueue$TransferStack from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.util.concurrent.SynchronousQueue$TransferStack$SNode from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.UNIXProcess$2 from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.UNIXProcess$ProcessPipeOutputStream from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.UNIXProcess$ProcessPipeInputStream from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.lang.UNIXProcess$3 from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded com.sun.javaws.Launcher$CacheUpdateRequiredException from /usr/java/jre1.7.0_21/lib/javaws.jar] [Loaded java.util.IdentityHashMap$KeySet from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.util.IdentityHashMap$KeyIterator from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded sun.font.SunFontManager$11 from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded java.awt.peer.SystemTrayPeer from /usr/java/jre1.7.0_21/lib/rt.jar] [Loaded sun.awt.X11.XSystemTrayPeer from /usr/java/jre1.7.0_21/lib/rt.jar]

La popup che ti appare ha un tasto “Details” (o dettagli se in italiano) ? se si clicca, apri il tab exception e riporta cosa c’è scritto.

Se non c’è in tasto “Details” se gui la seguente procedura

$ jcontrol 

ti si apre una finestra.
Sotto la voce “Temporary Internet Files” premi sul pulsante “View…”
nella finestra che ti si apre seleziona “show: Application”.

Ti dovrebbe comparire la tua applicazione.
Selezionala e premi il tasto verde “Play”

quando ti compare il popup clicca su dettagli e vai nel tab “exception” .

Ecco i dettagli dell’errore di caricamento dell’applicazione :

[code]Eccezione
CouldNotLoadArgumentException Impossibile caricare il file/l’URL specificato: /tmp/tmp_cache3587299338828925059.tmp]
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main.access$000(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Eccezione sottoposta a wrapping
java.io.FileNotFoundException: /tmp/tmp_cache3587299338828925059.tmp (File o directory non esistente)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at java.io.FileInputStream.(Unknown Source)
at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main.access$000(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[/code]