Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
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: 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, 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: 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, 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: 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, 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: 4856
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: 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


PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Scivolone ASRock: annuncia il Ryzen 9 99...
DLSS 5: NVIDIA spiega il funzionamento, ...
PlayStation come NVIDIA DLSS: Sony punta...
OnePlus Nord 6 sta arrivando e avr&agrav...
CPU desktop: Intel dice addio ai socket ...
Google sta testando un'app di Gemini per...
NVIDIA GeForce RTX 5070 Laptop: in arriv...
Il Tribunale di Roma ha annullato la mul...
AppleCare One potrebbe arrivare presto i...
Amazon ci riproverà: l'azienda st...
Apple e Samsung dominano la classifica d...
Un game designer di 9 anni, due fogli a ...
Il weekend Amazon parte col botto: gross...
Amazfit Active 2 scende a 69,99€: i migl...
Smart TV No IVA su Amazon: QLED, Mini-LE...
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:27.


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