Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-01-2009, 12:30   #1
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
[java] Problemi di esecuzione jar di un'applicazione RMI

Ciao a tutti,
ancora una volta ho bisogno del vostro aiuto.
Ho realizzato in java un'applicazione basata su java RMI con Netbeans 6.5. Se provo a farla girare da netbeans non ho nessun problema, ma quando creo il jar e ne lancio l'esecuzione mi da errore.
In particolare ho visto che si tratta di un errore di path, infatti non riesce a trovare il file di policy.
Per caricare tutti i file di cui l'applicazione ha bisogno ho utilizzato l'istruzione this.getClass().getResourse("path relativo")
quindi non dovrebbe darmi questi errori.
Perchè non funziona??
AIUTATEMI
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 12:56   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
il file di policy è dentro il jar?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 13:46   #3
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
si, il file è li dentro.
per prova ho fatto stampare la directory da dove va a cercare il file e mi esce questo:
c:/Users/Asus/Documents/NetBeansProjects/Ticket_Distributor/dist/Ticket_Distributor.jar!/is/files/server.policy

che vuol dire? come mai compare anche il .jar?
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 15:08   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da amaranto87 Guarda i messaggi
che vuol dire? come mai compare anche il .jar?
Perchè appunto il file di policy è dentro il jar, no?

Forse dico cazzate, ma:
Quote:
Originariamente inviato da amaranto87 Guarda i messaggi
c:/Users/Asus/Documents/NetBeansProjects/Ticket_Distributor/dist/Ticket_Distributor.jar!/is/files/server.policy
Non è che è il carattere '!' subito dopo l'estensione .jar ad essere il problema?
Che ci fa lì?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 15:22   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Dopo veloce consultazione del documento della Sun "Accessing Resources" credo che il problema sia proprio quel '!' nel path della risorsa.
Il motivo è spiegato nella parte sottolineata:
Quote:
Resources, names, and contexts

A resource is identified by a string consisting of a sequence of substrings, delimited by slashes (/), followed by a resource name. Each substring must be a valid Java identifier. The resource name is of the form shortName or shortName.extension. Both shortName and extension must be Java identifiers.

The name of a resource is independent of the Java implementation; in particular, the path separator is always a slash (/). However, the Java implementation controls the details of how the contents of the resource are mapped into a file, database, or other object containing the actual resource.

The interpretation of a resource name is relative to a class loader instance. Methods implemented by the ClassLoader class do this interpretation.
Perchè in identificatore sia considerato valido, a parte il primo carattere, bisogna che gli altri caratteri siano lettere, numeri, il carattere '_' o il carattere '$'.

Quindi è escluso il carattere '!'.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 13-01-2009 alle 15:27.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 15:47   #6
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
ma quel carattere non lo metto mica io.

cmq sono riuscito a far partire il jar mettendo il path assoluto del file di policy e mettendo il file .jar nella cartella principale e non dentro la cartella dist

però non posso far caricare il file di policy col path assoluto. in questo modo non girerebbe su altri computer, il problema sta tutto li
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 16:26   #7
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
altra cosa indesiderata: il jar non usa i file contenuti dentro di se, ma quelli delle directory circostanti.
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 16:39   #8
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
hai lanciato rmiregistry vero ??
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 16:46   #9
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
si lo faccio appena lancio l'applicazione server con questo metodo:

Registry r = LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 16:54   #10
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
accertati che venga eseguito nella stessa directory del server
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 17:19   #11
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
non so come fare, ma cmq il problema principale è che il file .jar prende i file al di fuori!! Non so proprio come fare a passargli i file e le immagini in modo che li prenda da dentro il jar.
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 18:47   #12
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
basta che lanci il tuo programma scrivendo:
Codice:
java -jar tuoarchivio.jar
se nel manifest.mf hai settato l'attributo Main-Class (o qualcosa del genere).
Se invece non hai settato quell'attributo allora lancialo con il comando
Codice:
java -cp tuoarchivio.jar tuo.package.TuaClasse
e così ad occhio dovrebbe andare

EDIT: così dovresti risolvere di sicuro il problema dei resource files che vengono presi dalle directory.
Se ancora non dovesse andare prova a passare anche quest'opzione al comando java:
Codice:
java -cp tuoarchivio.jar -Djava.rmi.server.codebase=file:/tuoarchivio.jar -Djava.security.policy=tuopolicyfile tuo.package.TuaClasse
con il file di policy messo ovviamente nella stessa directory da cui lanci tutto
__________________

Ultima modifica di ^TiGeRShArK^ : 13-01-2009 alle 18:53.
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 18:57   #13
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
non funziona.
e poi io non devo lanciarlo da linea di comando, devo poterlo lanciare solamente con il file jar indipendentemente dalla cartella in cui esso si trova.

sono riuscito a fargli prendere il file di policy con questa istuzione:

String url = TicketDistributorServer.class.getResource("/is/files/server.policy").toString();
System.setProperty("java.security.policy", url);

invece, per caricare le immagini sia se uso this.getClass().getResourse("..."), sia se uso il metodo di sopra, non funziona

funziona solo se metto il path delle cartelle esterne
File file = new File("src/is/files","logo.jpg");
logo = new JLabel(new ImageIcon(ImageIO.read(file)));
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 19:03   #14
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
mmm..
strano..
ma nella stringa che passi al getResource inizi con uno "/", vero?
perchè quando si usa il classloader fornito dalla classe bisogna mettere dei path assoluti, mentre quando usi il classloader puoi usare dei path relativi...
nel tuo caso per accedere alle immagini dovresti scrivere:
Codice:
this.getClass().getResource("/is/files/image.png");
come spiegato qui:
http://www.javaworld.com/javaworld/j...ty.html?page=2
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 19:14   #15
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
infatti non riesco a venirne a capo, ora ho capito facendo prove che alcuni file me li carica bene altri no, pur usando le stesse istruzioni

in particolare mi danno problemi, un file jpg ed un file txt

Ultima modifica di amaranto87 : 13-01-2009 alle 19:31.
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 19:53   #16
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
per l'immagine ho risolto
era proprio l'immagine a darmi problemi: l'avevo salvata come jpg da powerpoint, dopo l'ho aperta e risalvata in jpeg con paint ed ora non mi da più problemi.
ora mi resta da caricare correttamente il file di testo

Ultima modifica di amaranto87 : 13-01-2009 alle 21:51.
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2009, 20:51   #17
amaranto87
Member
 
Iscritto dal: Jul 2008
Messaggi: 140
Risolto tutto.
Non mi ero accorto che non accedeva al file data.txt solamente perchè stavo scrivendo su quel file e non posso sovrascrivere un file presente in un jar.

Grazie a tutti per l'aiuto
amaranto87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Samsung Galaxy S26 Ultra, promosso ma se...
Gemini sempre più integrato in Go...
NVIDIA investe in Thinking Machines Lab:...
NVIDIA prepara NemoClaw, piattaforma ope...
Samsung testa una batteria da 20.000 mAh...
Xbox non reintrodurrà i giochi in...
Profili social dei defunti creati automa...
L'IA accelera il lavoro, ma serve ancora...
Insta360 lancia Quick Reader: 512GB di p...
Notebook: prezzi verso un incremento del...
Il Politecnico di Milano va oltre i tran...
Questo nuovo driver integrato in Windows...
Offerte di Primavera Amazon: scope elett...
PS5 Slim con SSD da 1TB e NBA 2K26 inclu...
Nexperia, tra Olanda e Cina divampa anco...
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: 16:27.


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