Il nostro progetto in Eclipse mostra approssimativamente le seguenti cartelle:Eclipse: l'esportazione in .jar e comprendono i file di risorse (ANT)
application
- src
- JRE System Library [1.6]
- Referenced Libraries
- lib
- rsc
Nel nostro progetto, vorremmo utilizzare File> Esporta ...> Executable JAR
Bene che funziona bene, con qualche eccezione: se vogliamo eseguire il nostro application.jar, dobbiamo ancora copiare la cartella rsc/nella stessa posizione di application.jar.
In rsc /, abbiamo altre cartelle per la separazione delle diverse parti. In sostanza, abbiamo caricare i pezzi usando il codice (ben un po 'alterato, ma lo stile percorso è corretto)
strUrl = "file:rsc/properties/Constants.properties";
url = new URL(strUrl);
ImageIcon icon = new ImageIcon(url);
potevo fare clic destro su rsc Percorso> Usa come cartella di origine /> costruire.
Ma questo non funziona perché eclipse non copia automaticamente la cartella rsc nella cartella bin /. E quindi non possiamo eseguirlo più dal terminale (non impacchettato nel contenitore)
MODIFICA: perché eclipse non è in grado di gestirlo correttamente? Perché ha problemi con le cartelle di output "nidificate"? Nella scheda Source della finestra di dialogo Build Path, posso facilmente aggiungere rsc/-folder con la cartella di output impostata su bin/rsc /, ma non sembra in grado di mettere cartelle nidificate ...
EDIT 2: Ora sono stato in grado di creare un file xml per creare materiale con formica e in qualche modo è riuscito a includere la cartella rsc direttamente nel jar. Ancora non funziona a causa degli stessi errori. Devo davvero controllare i percorsi delle risorse, che siano in una JAR o no? Il contenuto del JAR è ora la seguente:
META-INF/
META-INF/MANIFEST.MF
configurator/
controller/
editor/
gui/
logic/
networking/
rsc/
rsc/gamesettings/
rsc/levels/
rsc/pics/
rsc/properties/
util/
ma Java mi odia ancora e lancia java.io.FileNotFoundException: rsc/properties/Constants.properties
con uno stacktrace di circa 100 linee.
qualcuno un'idea come si fa? thx & saluti
Sì. Questa era la soluzione, ma la marcatura di rsc/as src-folder in eclissi non ha funzionato. Un altro studente mi ha portato direttamente alla stessa soluzione. Il problema era che dovevamo usare Class.getResource ("..."), il percorso preceduto da un '/'. per quanto riguarda – Atmocreations
Mi spiace, cosa intendi per 'Class # getResource()'? Non esiste un metodo statico nella classe 'Class'. – m0skit0
@ m0skit0 Il metodo non è statico, mi dispiace per la confusione. –