java best practice per cercare i file essenziali del progetto?

1

Di solito quando si fa un nuovo progetto java, ci sono diversi file essenziali come il file delle proprietà log4j, altri file di proprietà e file di log e bisogna dire a java dove si trovano e dove si desidera salvare il file di registro.

Non voglio hardcode il percorso assoluto di questi file perché sto mettendo i progetti su macchine diverse in diverse fasi di sviluppo. Ad esempio, utilizzo Eclipse / PC in fase di sviluppo, Ant / Unix in UAT e Macchina di produzione.

Ecco la mia configurazione abituale:

Progetto: --src --costruire --conf --log --output

A mio avviso, le directory src e build sono incluse nel classpath e potrebbero essere lette subito da this.getClass().getClassLoader().getResource(".").getPath() . Tuttavia, non esiste un metodo logico per individuare la directory Project a livello di codice.

Se trovassi la directory Project a livello di programmazione, potrei dire al programma che i file sono in $ {Project} / conf e salvare il file di log in $ {Project} / log.

Dovrei semplicemente usare uno script di shell per definire queste variabili prima di eseguire il programma?

    
posta lamwaiman1988 05.08.2014 - 04:35
fonte

1 risposta

1

Ho fatto qualcosa di simile nel progetto che sto costruendo attualmente. Devo accedere ai file delle proprietà che ho memorizzato all'interno della build, oltre che all'esterno del progetto. Il che significa che i file si troveranno al di fuori del vaso risultante. Quindi spero che il mio metodo ti sia di aiuto.

Per accedere al file interno che si trova all'interno del jar, io uso

Classname.class.getClassLoader().getResourceAsStream(fileName)

E i file esterni che uso

new FileInputStream(fileName);

fileName viene dichiarato con l'estensione e con qualsiasi sottocartella precedente per esempio. "Thisfolder / thisfile.me"

    
risposta data 05.08.2014 - 12:02
fonte

Leggi altre domande sui tag