Ho un jar strutturato (internamente) similmente così:
codice:
-META-INF
-MANIFEST.MF
-nomeProgetto
-images (è una cartella)
-cartella1 (è una cartella)
-cartella2 (è una cartella)
-music (è una cartella)
-tuttiFileClass.class
Supponiamo che io voglia ottenere la lista di tutti i file contenuti in nomeProgetto.images.cartella1.
Ho fatto nel seguente modo:
codice:
File dir = new File (getClass ().getResource ("/nomeProgetto/images/cartella1").toURI ());
File [] files = dir.listFiles ();
Facendo in questo modo il tutto funziona se lo eseguo dall'IDE (Netbeans , probabilmente per questioni di classpath) mentre se avvio da linea di comando ottengo una eccezione con messaggio "URI is not hierarchical"
Ho provato , tramite suggerimenti online , a seguire la seguente procedura:
codice:
File dir = new File ((JarURLConnection)(getClass ().getResource ("/nomeProgetto/images/cartella1").openConnection ()).getJarFileURL ().getFile ());
File [] files = dir.listFiles ();
Ma così facendo se avvio da terminale ottengo un "NullPointerException" , mentre da IDE un "ClassCastException: sun.net.www.protocol.file.FileURLConnection cannot be cast to java.net.JarURLConnection"
C'è un modo per risolvere?Se dovessi fare a mano il procedimento per ogni singolo file sarebbe veramente laborioso..