Dopiero co uporałem się z identycznym (tak przynajmniej myślałem) problemem -> http://4programmers.net/Forum/Java/248484-projekt_do_jara_-_nie_dziala_prawdopodobnie_blad_z_zasobami
Jako że coś takiego poprzednio zadziało:
package resources;
import java.io.InputStream;
public class ResourceLoader
{
public static ResourceLoader rl = new ResourceLoader();
public static InputStream getXMLDocumentInputStream(String fileName)
{
InputStream is = rl.getClass().getResourceAsStream("xml/" + fileName + ".xml");
return is;
}
}
Postanowiłem w identyczny sposób rozwiązać problem w dużym projekcie, nad którym już dłuższy czas pracuję. Niestety - NullPointerException
. Błąd się pojawia już przy pierwszej próbie wczytania pliku z zasobami.
package resources;
import java.io.*;
import java.net.URL;
import java.nio.file.*;
public class ResourceLoader
{
public static ResourceLoader rl = new ResourceLoader();
/**
* make Input Stream
*/
private static InputStream makeIS(String first, String... more)
{
Path path = Paths.get(first, more);
System.out.println(path); //test
InputStream is = rl.getClass().getResourceAsStream(path.toString());
if(is == null) System.out.println("nenfsd"); //test
return is;
}
public static InputStream getArmiesList()
{
return makeIS("army", "Armies.txt");
}
...
}
Rozkład folderów jest analogiczny do tego, jaki miałem w poprzednim problemie (czyli teoretycznie powinno działać). Mianowicie, poprzednio miałem:
resources:
~ xml:
~ smsy.xml
~ ResourceLoader.class
a teraz mam(nie będę rozwijał tych zbędnych):
resources:
~ army:
~ Armies.txt
...
~ skills:
...
...
~ ResourceLoader.class
I wtedy nie wywalało nulla, a teraz:
army\Armies.txt
nenfsd
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at generator.GeneratorFrame.<init>(GeneratorFrame.java:87) // <- tutaj jest wywołanie tej metody po prostu
...
Oczywiście program pięknie działa zanim się go wpakuje do jara.
Z góry dziękuję za pomoc :)