Je ne pense pas qu'il soit possible de le faire d'une manière agréable et 100% -finiment compatible. Java essaie en fait de vous éloigner un peu du système de fichiers grâce au mécanisme de classpath. Néanmoins, vous pouvez généralement obtenir le chemin du fichier via le chargeur de classe. La première étape consiste à obtenir une référence à un chargeur de classe capable de trouver la ressource qui vous intéresse (généralement, le chargeur de classe de l'une de vos propres classes fonctionnera correctement, si vous avez un scénario plus complexe, sachez quel classloader utiliser) .
Ensuite, vous pouvez demander au classloader pour l'emplacement d'une ressource donnée comme une URL, par exemple:
final ClassLoader loader = getClass().getClassLoader();
final URL resourceLocation = loader.getResource("com/mycomp/coolapp/checkthis.doc");
Maintenant, si vous êtes chanceux, l'URL utilisera le protocole file:/
et décrira un emplacement sur votre système de fichiers local. Si c'est le cas, vous pouvez extraire ce chemin et l'utiliser comme l'emplacement du système de fichiers de la ressource de chemin de classe que vous venez de rechercher. Si ce n'est pas une ressource file:/
, la classe peut même pas exister sur votre ordinateur local (par exemple, il est chargé à distance via RMI) de sorte que vous n'avez pas de chance dans tous les cas.
Si cela vous semble compliqué, vous pouvez peut-être passer le répertoire de travail en tant que propriété système à partir de votre script de démarrage Java (par exemple java ... -Dworking.dir=$(pwd)
).
Voulez-vous le répertoire en cours, ou le package de la classe? L'emplacement du système de fichiers dépend si c'est dans un fichier jar et où votre chemin de classe est pointé. –
Je veux l'emplacement dans le système de fichiers, la classe Word n'est pas dans un pot. Je ne sais pas comment utiliser le classpath pour l'obtenir. – Federico