Sto lavorando con un progetto che viene configurato utilizzando la struttura di directory standard di Maven, quindi ho una cartella chiamata "risorse" e all'interno di questa ho creato una cartella chiamata "caratteri" e quindi inserisco un file. Devo passare il percorso completo del file String
(di un file che si trova, all'interno della mia struttura di progetto, a resources/fonts/somefont.ttf
) a un oggetto che sto usando, da una libreria di terze parti, come di seguito, ho cercato su questo per un po ' ma sono diventato un po 'confuso sul modo corretto di farlo. Ho provato come sotto ma non è in grado di trovarlo. Ho esaminato l'utilizzo di ResourceBundle
ma ciò sembrava implicare la creazione di un oggetto effettivo File
quando ho solo bisogno del percorso per passare a un metodo come quello riportato di seguito (non ho la chiamata di metodo effettiva di fronte a me, quindi basta dare un esempio dal mio memoria):Java (app web maven), ottenendo il percorso completo del file per il file nella cartella delle risorse?
FontFactory.somemethod("resources/fonts/somefont.ttf");
avevo pensato che ci fosse un modo, con un progetto con struttura di directory standard di Maven per ottenere un file dalla cartella delle risorse, senza dover utilizzare il percorso relativo completo dalla classe/package. Qualsiasi consiglio su questo è molto apprezzato.
Non voglio utilizzare un percorso hard-coded poiché diversi sviluppatori che lavorano al progetto hanno impostazioni diverse e voglio includerlo come parte del progetto in modo che ottengano direttamente quando controllano l'origine del progetto .
Questo è per un'applicazione web (Struts 1.3 app) e quando guardo nel file WAR esplosa (che sto facendo funzionare il progetto off di tramite Tomcat), il file e ':
<Exploded war dir>/resources/fonts/somefont.ttf
Cosa c'è di sbagliato con ottenere l'oggetto File dalla ResourceBundle, quindi utilizzando File.getAbsolutePath() per passare a FontFactory.somemethod()? (Tieni presente che non ti è garantito di ottenere un oggetto File se WAR non è espanso sulla distribuzione.) – BobG
probabilmente non c'è niente di sbagliato :) Grazie, non sono così familiare con 'ResourceBundle' quindi non mi ero reso conto che avrebbe funzionato, grazie per il suggerimento – Rick
In realtà lasciami postare qualche pseudo-codice che ho usato con successo sotto - non sono sicuro su ResourceBundle, ma Resource (out of Spring) funziona: – BobG