Ho seguito il metodo di caricamento del file di risorse utilizzando getClass.getResource(path)
. Il frammento di codice è qui:Caricamento di file da getClass(). GetResource()
String url = "Test.properties";
System.out.println("Before printing paths..");
System.out.println("Path2: "+ getClass().getResource(url).getPath());
FileInputStream inputStream = new FileInputStream(new File(getClass().getResource(url).toURI()));
i_propConfig.load(inputStream);
inputStream.close();
Ho configurato in Eclipse con la gerarchia (Sotto fonte c'è una cartella chiamata SwingDemo In SwingDemo c'è il mio file java così come il file di risorse.) ...
- src
- SwingDemo
- CustomDialog.java
- Test.properties
- SwingDemo
Quando sto facendo funzionare questo su Eclipse tutto sta funzionando benissimo. Ma non appena si tenta di eseguire le applicazioni da linea di cmd un'eccezione di puntatore nullo è in corso ..
gerarchia distribuzioneriga di comando è la seguente:
Cartella: D:\Work\Java Progrms\SwingDemo
Gerarchia:
- SwingDemo
- CustomDialog.java
- Test.proprietà
Prima di tutto ho compilato questo file all'interno della cartella SwingDemo
da linea di comando (javac CustomDialog.java
). Poi mi sposto un passo indietro nella cartella programmi Java (come ho già detto il pacchetto all'interno .java classe) ed eseguire le applicazioni utilizzando il famoso
java SwingDemo.CustomDialog
ho usato per seguire i passi simili quando ho usato new FileInputStream ("percorso ") in precedenza. Dopo aver fatto questo modo ottengo eccezione puntatore nullo ..
Penso che getClass().getResource(url)
non può caricare il file da una directory specifica. Ecco perché ho inserito la risorsa nella stessa directory di quella del mio file java. Funzionava bene in Eclipse. Ma perché questo sta dando errore quando corro da Command Line.
Questo mi ha aiutato: "Se il pacchetto la tua app in un file jar o se carichi le classi su una rete, non funzionerà. " -> Devi invece ottenere un InputStream dal file. –