Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
La prima tappa italiana della Road to CES porta a Milano i vertici della Consumer Technology Association, con una nuova griglia di lettura dei trend tecnologici e una posizione netta su dazi e regolamentazione dell'IA
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-02-2008, 20:00   #1
altropinto
Member
 
Iscritto dal: Feb 2006
Messaggi: 88
[java] JNLP accedere archivio JAR

Salve a tutti,
ho un problema......
Ho creato un'applicazione java;dopo ho importato, come libreria, un archivio jar che contiene un file di testo (test.txt). Da questa applicazione con la seguente istruzione riesco ad accedere al file contenuto nell'archivio jar:

InputStream fis = ClassLoader.getSystemClassLoader().getResourceAsStream("mio/file/test.txt");

Dopo di ciò ho realizzato una jnlp, l'applicazione funziona ma non riesco più ad accedere al file di testo.
Qualcuno mi saprebbe dire il motivo?????
Con le jnlp devo eseguire qualche istruzione specifica???? O devo indicare un percorso specifico???
altropinto è offline   Rispondi citando il messaggio o parte di esso
Old 02-02-2008, 20:41   #2
altropinto
Member
 
Iscritto dal: Feb 2006
Messaggi: 88
C'è un altro utente che ha gli stessi mie problemi, vi posto il topic:

*********************************************************
Ciao a tutti è il mio primo problema (su questo forum) spero possiate aiutarmi e consigliarmi.

L'applicazione da me realizzata è depositata su un server e distribuita sui vari client mediante javawebstart.
Pertanto le varie classi e files sono compattati in dei file.jar; tali jar sono stati tutti firmati poichè ci sono delle classi che richiedono di accedere al file system locale e quindi il tag del file jnlp di avvio è stato impostato su .
Fin qui nessun problema.
Il dilemma sorge quando devo caricare da una classe una risorsa presente su un jar differente da cui essa appartiene.
b.jar!/ovi faccio vedere brevemente la struttura dei jar

app.jar!/GUIobjects/*.class
app.jar!/objects/*.class
app.jar!/reports/*.jasper

mylib.jar!/GUIobjects/*.class
mylib.jar!/objects/*.class

Poichè la classe che deve caricare la risorsa si trova in
mylib.jar!/objects/*.class
e la risorsa da caricare in
app.jar!/reports/*.jasper
non posso utilizzare InputStream is = getClass().getResourceAsStream(reports/f.jasper)
bensì
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream(reports/f.jasper)
Se compilo ed eseguito da netbeans funziona. se invece faccio partire l'applicazione da javawebstart, mi diche che l'oggetto input stream è nullo ho infatti scorporato l'istruzione sopra per cercare di capire il problema
--
ClassLoader loader = ClassLoader.getSystemClassLoader();
if (loader== null){
System.out.println("no classloader");
}
else{
InputStream is = loader.getResourceAsStream(filepath);
if(is==null)
System.out.println("no inputstream");
-----------------
Vorrei capire per quale motivo, l'unica differenza che c'è tra far avviare l'applicazione da netbeans e farla avviare tramite webstart, è che nel primo caso non si applicano i criteri di policy e nel secondo sì.Io però non credo sia un problema di policy, per 2 motivi
1 - non mi da un errore perciso di accesso negato, tanto è vero che il classloader viene creato
2 - i jar sono tutti firmati e il tag , come accennato prima è impostato su

d'altro canto non può essere che il percorso della risorsa sia sbagliato altrimenti non riusciva a trovarla anche se avvio da netbeans.
Aggiungo per finire che se modifico la struttura dei jar e metto i file da caricare nello stesso jar della classe che li carica, posso utilizzare il metodo getClass().getResourceAsStream() e in questo caso funziona tutto
Voi cosa ne dite?

grazie per l'attenzione

********************************************************


qualcuno mi può aiutare???
altropinto è offline   Rispondi citando il messaggio o parte di esso
Old 02-02-2008, 21:06   #3
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
nel jnlp hai inserito nel classpath tutti i file jar?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 09:19   #4
altropinto
Member
 
Iscritto dal: Feb 2006
Messaggi: 88
Come faccio ad aggiungere i jar nel CLASSPATH???????

Intendi inserire i jar nei tag <resources>????

Questa è la mia jnlp:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" href="mia.jnlp" codebase="http://localhost:8084/miaJNLP/gpi">

<information>
<title>mia</title>
<vendor>mia</vendor>
<description>mia</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>

<resources>
<j2se version="1.6"/>
<jar href="xxx.jar" download="lazy"/>
<jar href="miaGen.jar" main="true" download="lazy"/>
<jar href="vomsList.jar"/>
</resources>

<application-desc main-class="grelc.tools.proxygen.ProxyInit">
<argument>localhost</argument>
<argument>porta</argument>

</application-desc>
</jnlp>
altropinto è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 10:58   #5
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da altropinto Guarda i messaggi
Come faccio ad aggiungere i jar nel CLASSPATH???????

Intendi inserire i jar nei tag <resources>????

Questa è la mia jnlp:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" href="mia.jnlp" codebase="http://localhost:8084/miaJNLP/gpi">

<information>
<title>mia</title>
<vendor>mia</vendor>
<description>mia</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>

<resources>
<j2se version="1.6"/>
<jar href="xxx.jar" download="lazy"/>
<jar href="miaGen.jar" main="true" download="lazy"/>
<jar href="vomsList.jar"/>
</resources>

<application-desc main-class="grelc.tools.proxygen.ProxyInit">
<argument>localhost</argument>
<argument>porta</argument>

</application-desc>
</jnlp>
qui nelle resources credo (se il tuo jnlp è corretto pechè sono un paio di anni che non ne tocco uno ):
Codice:
<resources>
<j2se version="1.6"/>
<jar href="xxx.jar" download="lazy"/>
<jar href="miaGen.jar" main="true" download="lazy"/>
<jar href="vomsList.jar"/>
<jar href="app.jar" main="true" download="lazy"/>
<jar href="mylib.jar" main="true" download="lazy"/>
</resources>
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 12:39   #6
altropinto
Member
 
Iscritto dal: Feb 2006
Messaggi: 88
Non va......perchè non riesce a trovare la classe principale nella mylib.jar(jar contenente solo file di teso).

Ma i path nella jnlp sono diversi dall'application???? Perchè nell'applicazione funziona bene e nella jnlp no???

Ultima modifica di altropinto : 03-02-2008 alle 12:48.
altropinto è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 13:17   #7
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da altropinto Guarda i messaggi
Non va......perchè non riesce a trovare la classe principale nella mylib.jar(jar contenente solo file di teso).
Nel jar deve anche esserci il Manifest file che specifica la classe principale, se non erro (nn conosco la tecnologia JNLP quindi non so se è importante)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 13:29   #8
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Codice:
<application-desc main-class="MainClass" />
..ma l'hai effettuato il sign del jar.. vero?
ah.. e devi togliere l'attributo main=true dalle classi che con contengono la main class..
io l'avevo messo in tutte perchè non ho idea da quale jar la prendi..
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 12:23   #9
altropinto
Member
 
Iscritto dal: Feb 2006
Messaggi: 88
ho provato a togliere " main="true" " ma non funziona lo stesso!!!!!

Secondo te è un problema di policy?????
altropinto è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 13:00   #10
DvL^Nemo
Senior Member
 
L'Avatar di DvL^Nemo
 
Iscritto dal: Nov 2001
Città: 100 metri dal mare
Messaggi: 4866
Vecchio problema.. Io ho risolto scompattando tutto da una parte ( temp o similari ) ed andando a caricare li' le risorse esterne.. Se riuscite a risolvere in un modo meno brutale puo' essere di aiuto..
Oltretutto nella versione 6 di java i jar vengono rinominati ( credo per questioni di sicurezza ) con dei nomi random ( quando vengono lanciati dal java web start ), quindi la cosa e' ancora piu' difficile..
__________________
TIM FTTC 200/20 LIVE SPEEDTEST

Ultima modifica di DvL^Nemo : 05-02-2008 alle 13:07.
DvL^Nemo è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 15:06   #11
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da DvL^Nemo Guarda i messaggi
Vecchio problema.. Io ho risolto scompattando tutto da una parte ( temp o similari ) ed andando a caricare li' le risorse esterne.. Se riuscite a risolvere in un modo meno brutale puo' essere di aiuto..
Oltretutto nella versione 6 di java i jar vengono rinominati ( credo per questioni di sicurezza ) con dei nomi random ( quando vengono lanciati dal java web start ), quindi la cosa e' ancora piu' difficile..
quando sono nella cache è assolutamente normale che vengano rinominati, lo faceva anche con Java 5 e immagino anche con java 1.4.2.
Io ai tempi avevo fatto funzionare il tutto perfettamente (..e non era stato propriamente semplice dato che in Diamond Crush abbiamo un casino di jar esterni e di librerie native) semplicemente guardando esempi già fatti di JNLP e la reference di tutti gli attributi.
Dato che non ricordo molto consiglio di usare la mia stessa tecnica
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
Oracle lancia Fusion Claw: gli agenti di...
Oracle e Astrazeneca insieme per lo svil...
Anthropic e la quotazione: cosa emerge d...
Condanna milionaria per il sessantottenn...
HONOR Robot Phone a Movieland: abbiamo g...
Google Messaggi introduce la Protezione ...
Vera Rubin, NVIDIA aggiorna le specifich...
Google Health 5.11 amplia il rilevamento...
Legacy Games chiude dopo quasi 30 anni: ...
iPhone Duo avvia le automazioni quando l...
Tomb Raider: Legacy of Atlantis, rivelat...
Instagram arriva su Apple TV con un'app ...
Meta lancia un'offerta azionaria da 35 m...
L'Italia sfida i big dei semiconduttori:...
Chernobyl fa parlare ancora di sé: il bi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:33.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v