Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [Java] file not found

  1. #1

    [Java] file not found

    Salve,
    il seguente codice non riesce a caricare il file properties

    codice:
      String curDir = System.getProperty("user.dir");         
                    System.out.println("\nIn questo momento ti trovi nella directory:");         
                    System.out.println(" - " + curDir);
    
                    
             
    		String files=curDir+"\\default.jasperreports.properties";
                    System.out.println(" - " + files);          
                    InputStream is = JRProperties.class.getResourceAsStream(files);
    l'errore è il seguente :
    codice:
    ...
    Caused by: net.sf.jasperreports.engine.JRException: Default properties file not found 
    ...
    eppure il file è nella cartella indicata....dov'è l'inghippo?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] file not found

    Originariamente inviato da JunkyFunki
    InputStream is = JRProperties.class.getResourceAsStream(files);

    dov'è l'inghippo?
    Quello che devi passare a getResourceAsStream() (come anche getResource() ) di Class non è un path completo sul file-system!!!

    Questi due metodi servono per ottenere un URL/InputStream di una risorsa che verrà ricercata usando gli stessi criteri che la JVM usa per trovare le classi basandosi sul "class path".

    Per essere più chiari: ad esempio data una classe com.pippo.Prova, se faccio:

    URL url = Prova.class.getResource("immagini/file.gif");

    Allora dal momento che la specifica della risorsa non inizia con '/' il package della classe Prova viene usato come base e la JVM cercherà un file in com/pippo/immagini/file.gif lungo il "class path".

    Se avessi indicato:

    URL url = Prova.class.getResource("/immagini/file.gif");

    Allora la JVM cercherebbe lungo il "class path" un file immagini/file.gif.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    La classe JRProperties si trova all'interno di :

    package net.sf.jasperreports.engine.util;

    mentre il file default.jasperreports.properties è all'interno della cartella src (netbeans la riconosce nella default package)

    per far caricare il file alla classe JRProperties ho provato, inutilmente, con questa linea di codice :

    InputStream is = JRProperties.class.getResourceAsStream("/default.jasperreports.properties");

    tramite il simbolo / non dovrebbe cercare all'interno della cartella src e quindi nella default package?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da JunkyFunki
    tramite il simbolo / non dovrebbe cercare all'interno della cartella src e quindi nella default package?
    È il classpath che conta!!!

    Immaginiamo che in classpath ci sia la directory C:\Prova e un jar C:\Librerie\lib.jar

    SET CLASSPATH=C:\Prova;C:\Librerie\lib.jar

    Se tu chiedi una risorsa "/default.jasperreports.properties", il package della classe (sul cui Class hai invocato il metodo) non centra e la risorsa è proprio "default.jasperreports.properties" ovvero sta alla "base", senza alcun package.

    La JVM cercherà quindi un file C:\Prova\default.jasperreports.properties

    Se esiste, ok, la risorsa è quella. Se non esiste allora cercherà un file default.jasperreports.properties contenuto nel file C:\Librerie\lib.jar e che sia alla radice del jar, ovvero non in un sotto-cartelle.

    Ti è più chiaro? Qui centra il "classpath".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.