Y at-il un moyen pour le programme Java de déterminer son emplacement dans le système de fichiers?Obtenir le chemin du fichier dans Java
Répondre
Vous pouvez utiliser CodeSource#getLocation()
pour cela. Le CodeSource
est disponible par ProtectionDomain#getCodeSource()
. Le ProtectionDomain
à son tour est disponible par Class#getProtectionDomain()
.
URL location = getClass().getProtectionDomain().getCodeSource().getLocation();
File file = new File(location.getPath());
// ...
Ce retourne l'emplacement exact de la Class
en question.
Mise à jour: selon les commentaires, il est apparemment déjà dans le classpath. Vous pouvez ensuite utiliser ClassLoader#getResource()
dans lequel vous passez le chemin relatif au package racine.
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL resource = classLoader.getResource("filename.ext");
File file = new File(resource.getPath());
// ...
Vous pouvez même obtenir comme un InputStream
en utilisant ClassLoader#getResourceAsStream()
.
InputStream input = classLoader.getResourceAsStream("filename.ext");
// ...
C'est également la manière normale d'utiliser des ressources empaquetées. Si elle se trouve à l'intérieur d'un paquet, utilisez par exemple com/example/filename.ext
à la place.
si vous voulez obtenir le « répertoire de travail » pour le programme en cours d'exécution, puis il suffit d'utiliser:
new File("");
Le répertoire de travail n'est pas nécessairement l'emplacement du programme. – Douglas
Pour moi, cela a fonctionné, quand je savais quel était le nom exact du fichier:
File f = new File("OutFile.txt");
System.out.println("f.getAbsolutePath() = " + f.getAbsolutePath());
Ou il y a cette solution aussi: http://docs.oracle.com/javase/tutorial/essential/io/find.html
- 1. NSIS obtenir le chemin du fichier appelant
- 2. Obtenir le chemin complet du fichier en java
- 3. Obtenir le chemin du fichier via javascript
- 4. obtenir le chemin du fichier txt
- 5. Obtenir le chemin réel du fichier téléchargé
- 6. Obtenir l'emplacement du chemin du fichier distant
- 7. Javascript - obtenir le chemin du fichier a chuté dans HTA
- 8. Obtenir le chemin du fichier ouvert dans Adobe Reader
- 9. Obtenir l'extension du fichier sans fournir d'extension dans le chemin
- 10. Comment obtenir le chemin correct du fichier de configuration?
- 11. comment obtenir le chemin du fichier à supprimer du serveur
- 12. Comment obtenir le chemin d'accès du fichier exécutable du service
- 13. Comment obtenir le chemin du fichier .jar exécuté?
- 14. Obtenir le chemin du fichier via le bouton de navigation
- 15. Comment puis-je obtenir le chemin du fichier dans un paquet java?
- 16. Spécification du chemin d'accès Java pour le fichier de propriétés
- 17. comment obtenir le chemin complet du fichier téléchargé
- 18. Comment obtenir le chemin du fichier d'une sélection iTunes
- 19. Comment obtenir le chemin complet du fichier css?
- 20. Trouver le chemin du fichier dans drupal
- 21. Chemin du fichier Netbeans
- 22. Comment obtenir le chemin du fichier de ressources?
- 23. Obtenir le chemin du fichier téléchargé en utilisant Python
- 24. Obtenir le chemin du fichier Outlook PST sans utiliser Microsoft.Office.Interop.Outlook
- 25. RegEx pour obtenir le chemin du fichier, sans domaine
- 26. Comment obtenir le chemin du fichier d'un CalCalendarItem?
- 27. Comment obtenir le chemin de fichier de mon fichier dans une application d'entreprise java?
- 28. iPhone: Obtenir le chemin du fichier qui est dans le sous-dossier du dossier de ressources
- 29. Obtenir le chemin d'accès réel du dossier
- 30. obtenir le chemin d'un fichier javascript
+1, mais notez que P rotectionDomain.getCodeSource() et CodeSource.getLocation() peuvent tous deux être NULL. –
@bkail: Il peut en effet renvoyer une valeur nulle lorsqu'il est chargé à l'aide d'un classloader mal conçu, ou lorsqu'il est chargé à partir d'une source de flux externe, etc. Ceci ne s'applique généralement pas aux programmes Java "concrets" avec un main() '. – BalusC
Cela fait vraiment le travail - mais il ne semble pas très agréable. Ce que je dois faire est de charger un fichier de configuration qui doit être dans le même dossier que mon jar, mais peut être exécuté à partir de n'importe quel emplacement. Est-ce la bonne façon d'obtenir les informations sur l'emplacement du fichier? – markovuksanovic