|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
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
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
il file di policy è dentro il jar?
__________________
|
|
|
|
|
|
#3 |
|
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? |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Perchè appunto il file di policy è dentro il jar, no?
Forse dico cazzate, ma: Quote:
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) |
|
|
|
|
|
|
#5 | |
|
Senior Member
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:
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. |
|
|
|
|
|
|
#6 |
|
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 |
|
|
|
|
|
#7 |
|
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.
|
|
|
|
|
|
#8 |
|
Senior Member
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 |
|
|
|
|
|
#9 |
|
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); |
|
|
|
|
|
#10 |
|
Senior Member
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 |
|
|
|
|
|
#11 |
|
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.
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
basta che lanci il tuo programma scrivendo:
Codice:
java -jar tuoarchivio.jar Se invece non hai settato quell'attributo allora lancialo con il comando Codice:
java -cp tuoarchivio.jar tuo.package.TuaClasse 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
__________________
Ultima modifica di ^TiGeRShArK^ : 13-01-2009 alle 18:53. |
|
|
|
|
|
#13 |
|
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))); |
|
|
|
|
|
#14 |
|
Senior Member
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");
http://www.javaworld.com/javaworld/j...ty.html?page=2
__________________
|
|
|
|
|
|
#15 |
|
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. |
|
|
|
|
|
#16 |
|
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. |
|
|
|
|
|
#17 |
|
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 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:59.





















