Javando...

appunti sviluppando in Java

Powered by Blogger.
  • Home
  • ?
Java

Java: caricare una risorsa interna in una applicazione esportata come JAR

Javatore martedì 11 gennaio 2011 No Comments
     In questi giorni mi sono imbattuto nel seguente problema:
ho realizzato una applicazione che fa uso di un file di properties, l'ho testata, tutto ok.
Esportata come jar, però, la mia applicazione ha smesso di funzionare perché il file properties risultava non trovato (FileNotFoundException). Strano no? 
Il problema era evidentemente nel percorso del file...ma come fare a specificare un percorso relativo al contenuto del pacchetto jar?

Ho scoperto, con mia sorpresa, che ottenendo da un oggetto la sua classe di runtime è possibile invocare un metodo denominato getResourceAsStream(String name) che permette di ricercare una risorsa delegando tale compito al Class Loader che ha caricato la specifica classe. In questo modo la risorsa viene cercato nel contesto dell'applicazione, quindi nel mio caso all'interno del jar, ottenendo il risultato che cercavo. Ma vediamo il codice corrispondente, chiarirà ogni dubbio:

...
Properties p = new Properties();
p.load(this.getClass().getResourceAsStream("/myApp.properties"));
...
    
il file "myApp.properties" verrà ricercato nella root dell'archivio jar.
Importate è sottolineare la presenza del carattere "/" che precede il nome file per riferire come percorso la root. In assenza di questo, infatti, il file viene ricercato all'interno del package che contiene la classe riferita con this nel codice di esempio. 
Javatore

You May Also Like

Java
  • Previous JVM: Gestione heap
  • Next Java: parsing delle date con controllo di validità
Pubblicato da Javatore
Invia tramite emailPostalo sul blogCondividi su XCondividi su FacebookCondividi su Pinterest
Etichette: file properties, getResourceAsStream, jar, Java

Nessun commento:

Posta un commento

Post più recente Post più vecchio Home page
Iscriviti a: Commenti sul post (Atom)

Author

Like Us

Labels

batch (1) Could not find main class (1) file properties (1) garbage collector (1) GC (1) getResourceAsStream (1) heap (1) jar (1) Java (2) jvm (1) MANIFEST (1) parsing date (1) script (1) SimpleDateFormat (1)

Popular Posts

  • JAR: Could not find main class
         O ggi voglio scrivere di un problema in cui può essersi imbattuto chiunque abbia provato a creare uno script batch a partire da un pr...
  • Java: parsing delle date con controllo di validità
        A chi non è mai capitato di dover parsare una stringa per convertirla in un oggetto Date ? La cosa è abbastanza banale in Java mediant...
  • JVM: Gestione heap
        P er chi sviluppa in Java prima o poi arriva il momento di confrontarsi con problemi di tuning della JVM, in particolare dei parametri i...
  • Java: caricare una risorsa interna in una applicazione esportata come JAR
         I n questi giorni mi sono imbattuto nel seguente problema: ho realizzato una applicazione che fa uso di un file di properties , l'h...
  • Il primo post
    E ccolo! Vi presento il primo post di Javando . Ho aperto questo blog perché mi sono accorto che spesso, durante lo sviluppo di software in...

Javando

appunti sviluppando in Java

Pagine

  • Home page
  • Chi è Javatore?

I più popolari

  • Java: parsing delle date con controllo di validità
        A chi non è mai capitato di dover parsare una stringa per convertirla in un oggetto Date ? La cosa è abbastanza banale in Java mediant...
  • Java: caricare una risorsa interna in una applicazione esportata come JAR
         I n questi giorni mi sono imbattuto nel seguente problema: ho realizzato una applicazione che fa uso di un file di properties , l'h...
  • JVM: Gestione heap
        P er chi sviluppa in Java prima o poi arriva il momento di confrontarsi con problemi di tuning della JVM, in particolare dei parametri i...
  • JAR: Could not find main class
         O ggi voglio scrivere di un problema in cui può essersi imbattuto chiunque abbia provato a creare uno script batch a partire da un pr...
  • Il primo post
    E ccolo! Vi presento il primo post di Javando . Ho aperto questo blog perché mi sono accorto che spesso, durante lo sviluppo di software in...
Created by -Way2themes - | Distributed By Gooyaabi Templates
  • HOME
  • ?