convertir nom du package chemin
J'ai une classe de.xyz.MyClass
qui est stocké dans de/xyz/MyClass.java
.
Comment puis-je obtenir ce chemin à partir de la classe MyClass
lui-même?
Qu'entendez-vous par "à l'intérieur de la classe"?
Voir ma réponse ci-dessous; mais ma question est est-ce que vous vraiment essaie de faire? Cela se sent comme un tremplin, et mon soupçon est qu'il y a une meilleure façon.
êtes-vous essayer de charger une ressource à partir de ce paquet?
Il est toujours difficile de savoir avec de nouveaux utilisateurs/programmeurs de ce qu'il cherche à atteindre. Probablement pas tout le monde sait que vous pouvez modifier la question d'origine.
Voir ma réponse ci-dessous; mais ma question est est-ce que vous vraiment essaie de faire? Cela se sent comme un tremplin, et mon soupçon est qu'il y a une meilleure façon.
êtes-vous essayer de charger une ressource à partir de ce paquet?
Il est toujours difficile de savoir avec de nouveaux utilisateurs/programmeurs de ce qu'il cherche à atteindre. Probablement pas tout le monde sait que vous pouvez modifier la question d'origine.
OriginalL'auteur rocksportrocker | 2009-12-17
Vous devez vous connecter pour publier un commentaire.
Comme ceci:
Mais notez que, parfois, les noms de classe sont annotés (par exemple, les classes internes, etc.). Plus ici.
Si vous êtes débutant avec une instance de la classe (peut-être
this
à l'intérieur de l'un des les méthodes de la classe), vous pouvez obtenir l'intermédiaire de la classeinstance.getClass()
. Par exemple:Bien sûr, ils vont être par rapport à une base (répertoire ou jar dans le classpath...
OriginalL'auteur T.J. Crowder
Je ne sais pas si cette réponse à votre question, je vais donc faire de mon mieux deviner:
Qui, lors de la compilation et de l'exécution donne:
De cette façon, vous pouvez modifier un peu les appels et le chemin que vous voulez:
Garder à l'esprit que ne fonctionnera que si les classes sont stockés dans des répertoires, des pots que vous aurez à le modifier un peu (
if( pathToClass.startsWith("jar")){ //etc...
)Aussi, classe chargeurs ne fonctionnent pas toujours avec le système de fichiers, certains d'entre eux charger les fichiers de bases de données, ldaps et à peu près n'importe où, donc, n'est pas toujours vrai que pour
de.xyz.MyClass
il existe unde/xyz/MyClass.class
fichier ( comme indiqué avec le bocal exemple)J'espère que vous trouverez ce utile.
module
, dans mon classpath. Pour cela, j'ai simplement fait:AnyClassName.class.getResource("/module").getPath();
. Notez quemodule
commence avec un/
.OriginalL'auteur OscarRyz
Il est util de classe ==> org.springframework.util.ClassUtils.
Source :
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/ClassUtils.html
Le lien est maintenant corrigé.
Il n'y a pas une telle méthode dans org.apache.commons.lang3.ClassUtils et lien ci-dessus.
comme jwj mentionné dans le commentaire ci-dessus, c'est une méthode triviale dans le Ressort de la ClassUtils.
OriginalL'auteur Dara
Essayer
de.xyz.MyClass
. La sortie désirée estde/xyz/MyClass
.OriginalL'auteur Peter Lang