Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
NUC 15 Pro e NUC 15 Pro+ sono i due nuovi mini-PC di casa ASUS pensati per uffici e piccole medie imprese. Compatti, potenti e pieni di porte per la massima flessibilità, le due proposte rispondono in pieno alle esigenze attuali e future grazie a una CPU con grafica integrata, accompagnata da una NPU per la gestione di alcuni compiti AI in locale.
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Dal palco di Proofpoint Protect 2025 emerge la strategia per estendere la protezione dagli utenti agli agenti IA con il lancio di Satori Agents, nuove soluzioni di governance dei dati e partnership rafforzate che ridisegnano il panorama della cybersecurity
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-02-2008, 19: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, 19: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, 20:06   #3
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
nel jnlp hai inserito nel classpath tutti i file jar?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 08: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, 09:58   #5
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
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, 11: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 11:48.
altropinto è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 12: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, 12:29   #8
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
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, 11: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, 12:00   #10
DvL^Nemo
Senior Member
 
L'Avatar di DvL^Nemo
 
Iscritto dal: Nov 2001
Città: 100 metri dal mare
Messaggi: 4855
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 12:07.
DvL^Nemo è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 14:06   #11
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
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


ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Steelseries Arctis Nova Elite: le prime ...
30 anni di PlayStation da indossare: arr...
Amazon lancia gli Echo più potent...
Amazon rinnova la gamma Fire TV: ecco le...
Ring lancia le sue prime videocamere con...
Blink amplia la gamma di videocamere di ...
Jaguar Land Rover riprende (gradualmente...
HONOR inaugura il primo ALPHA Flagship S...
Yamaha: ecco il brevetto del 'finto moto...
'Console obsoleta e utenti ingannati': u...
Stop al ransomware su Google Drive, graz...
L'IA è la nuova interfaccia utent...
Battlefield 6: confermata la dimensione ...
Windows 11 porta il Wi-Fi 7 alle aziende...
Logitech MX Master 4 subito disponibile ...
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: 20:03.


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