2012-01-12 27 views
6

E 'possibile ottenere il nome del file che si sta eseguendo. Come per es. Se sono in esecuzione un file Jar e all'interno voglio aggiungere funzionalità di codice in grado di rilevare il nome del file in modo che se questo jar viene rinominato, il codice dovrebbe essere in grado di rilevarlo.Ottieni il nome del file in esecuzione in Java?

Esiste la possibilità di farlo senza eseguire la scansione dei file nella directory corrente?

+0

realtà non voglio dete ct questo usando il PID corrente, chiedendo se ci sia del bulit di Java in supporto per questo? – Johnydep

+1

perché downvote? la mia domanda è legittima. – Johnydep

+0

Correlati: http://stackoverflow.com/questions/320542/how-to-get-the-path-of-a-running-jar-file – jalopaba

risposta

4

Prova questa:

String path = Test.class.getProtectionDomain().getCodeSource().getLocation().getPath(); 
String decodedPath = URLDecoder.decode(path, "UTF-8"); 

http://www.rgagnon.com/javadetails/java-0300.html

http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getProtectionDomain()

http://docs.oracle.com/javase/7/docs/api/java/security/ProtectionDomain.html

+0

grazie anche se non in tutti gli scenari ma funziona parzialmente, c'è qualche documentazione sui metodi definiti sopra? – Johnydep

+0

Grazie, era esattamente quello che stavo cercando :) – Johnydep

-2

si potrebbe verificare se System.getenv() ha un certo valore che indica che il file è stato invocato

+0

System.getenv() non mostra mai tali informazioni. – Johnydep

Problemi correlati