View Full Version : [JAVA] Scrivere file di log non nella dir da dove è chiamato il jar ma nella stessa
Salve ragazzi,
ho un interrogativo forse banale, ma non sono riuscito a trovare nulla:
ho un server: server.jar e un file di log messages.log che viene scritto nella directory dalla quale ho chiamato server.jar dal prompt, mi spiego meglio:
cd c:/
C:>java -jar d:\server.jar
bene il log messages.log verrà scritto in d:\, io voglio che lo faccia in c:\ quindi nella directory dove risiede il jar, non da dove viene chiamato, c'è un modo di avere il path di dove risiede il jar?
Grazie mille!
ma.... se chiami il jar fornendo quel percorso li il server.jar risiede in d non in c, comunque se lo chiami ogni volta da console puoi direttamente passare come parametro al main il percorso dove vuoi salvare il log no?
puoi risalire alla posizione di un jar dal nome di una risorsa impacchettata in quel jar. Puoi farlo ad esempio con una classe. Se sai che nel file abc.jar c'è la classe it.mario.Rossi, allora sai che in quel jar c'è il file:
it/mario/Rossi.class
Se dai in pasto quella stringa a getResource ti ritrovi un un URL tipo:
jar:file:/cartella del jar/abc.jar!it/mario/Rossi.class
E ti basta tagliare il primo pezzo (jar:file:/) e il nome del file jar prima del punto esclamativo per avere la cartella del jar.
puoi risalire alla posizione di un jar dal nome di una risorsa impacchettata in quel jar. Puoi farlo ad esempio con una classe. Se sai che nel file abc.jar c'è la classe it.mario.Rossi, allora sai che in quel jar c'è il file:
it/mario/Rossi.class
Se dai in pasto quella stringa a getResource ti ritrovi un un URL tipo:
jar:file:/cartella del jar/abc.jar!it/mario/Rossi.class
E ti basta tagliare il primo pezzo (jar:file:/) e il nome del file jar prima del punto esclamativo per avere la cartella del jar.
si io avevo seguito il tuo suggerimento in qualche altro thread (grazie :p ) però avevo un problema perchè ubuntu si incazz se gli togli anche il primo / mentre su windows andava bene, ho fatto un test lasciandolo e sia su ubuntu che su seven mi trovava la risorsa quindi potresti lasciarlo, anche se dal percorso vedo che sei su win :asd:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.