konvertieren Paket-Namen Weg
Habe ich eine Klasse de.xyz.MyClass
gespeichert, die in de/xyz/MyClass.java
.
Wie kann ich diese Pfad aus der Klasse MyClass
selbst?
Was meinst du mit "innerhalb der Klasse"?
Siehe unten meine Antwort; aber meine Frage ist, was sind Sie wirklich versucht, zu tun? Das fühlt sich an wie ein Sprungbrett, und mein Verdacht ist, dass es einen besseren Weg.
sind Sie versuchen zu laden, eine Ressource, die in diesem Paket?
Es ist immer schwer zu wissen, mit der neue Benutzer/Programmierer, was sind Sie versuchen zu erreichen. Wohl nicht jeder weiß, dass Sie Bearbeiten die original-Frage.
Siehe unten meine Antwort; aber meine Frage ist, was sind Sie wirklich versucht, zu tun? Das fühlt sich an wie ein Sprungbrett, und mein Verdacht ist, dass es einen besseren Weg.
sind Sie versuchen zu laden, eine Ressource, die in diesem Paket?
Es ist immer schwer zu wissen, mit der neue Benutzer/Programmierer, was sind Sie versuchen zu erreichen. Wohl nicht jeder weiß, dass Sie Bearbeiten die original-Frage.
InformationsquelleAutor rocksportrocker | 2009-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie diese:
Aber beachten Sie, dass manchmal Klassennamen versehen sind (z.B. innere Klassen, etc.). Mehr hier.
Wenn Sie beginnen, mit einer Instanz der Klasse (vielleicht
this
innerhalb einer der Methoden der Klasse), Sie erhalten die Klasse überinstance.getClass()
. Zum Beispiel:Natürlich, diese gehen, um sein Verhältnis zu einigen der Basis (Verzeichnis oder jar) in den classpath...
InformationsquelleAutor T.J. Crowder
Ich bin mir nicht sicher, ob diese Antwort Sie Frage, so werde ich mein best guess:
Welche beim kompilieren und ausführen ergibt:
Diese Weise können Sie ein wenig modifizieren, die Anrufe und habe den Pfad, wie Sie wollen:
Beachten Sie, dass nur arbeiten, wo die Klassen gespeichert werden, in Verzeichnissen, für die Gläser, die Sie haben, um es zu ändern ein wenig (
if( pathToClass.startsWith("jar")){ //etc...
)Auch, class loader nicht immer die Arbeit mit dem Dateisystem, einige von Ihnen laden Sie Dateien aus Datenbanken, ldaps und so ziemlich überall, so ist nicht immer wahr, dass für
de.xyz.MyClass
gibt es einede/xyz/MyClass.class
- Datei ( wie gezeigt, mit dem jar-Beispiel)Ich hoffe, Sie finden diese nützlich.
module
, in meinem classpath. Dafür habe ich einfach nicht:AnyClassName.class.getResource("/module").getPath();
. Beachten Sie, dassmodule
beginnt mit einem/
.InformationsquelleAutor OscarRyz
Gibt es ein util class ==> org.springframework.util.ClassUtils.
Quelle :
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/ClassUtils.html
Der link ist nun korrigiert.
Es gibt keine solche Methode in org.apache.Unterhaus.lang3.ClassUtils und link oben.
als jwj erwähnt in dem Kommentar oben, es ist eine triviale Methode in die Feder ClassUtils.
InformationsquelleAutor Dara
Versuchen
de.xyz.MyClass
. Die gewünschte Ausgabe istde/xyz/MyClass
.InformationsquelleAutor Peter Lang