Je souhaite créer un utilitaire de ligne de commande qui effectue certaines opérations en fonction de la réflexion des fichiers de classe externes. Je passerais dans un chemin d'accès aux fichiers .class ou fichiers source (éventuellement des caractères génériques). À un certain moment pendant l'exécution, je dois obtenir des objets de classe pour chaque classe, ne connaissant pas leurs noms de paquets à l'avance. Que faudrait-il faire pour cela? Que puis-je regarder pour commencer? J'ai également accès aux fichiers sources des classes.Comment charger un fichier .class java arbitraire à partir du système de fichiers et y réfléchir?
est en java 1.6.
également, serait-il plus facile d'obtenir des objets de classe de la source en utilisant l'API du compilateur java?
par 'créer' voulez-vous dire instantiate ou subclass? – gtrak
'defineClass' chargera le fichier de classe dans la JVM et retournera une' Class' qui le représente. Vous pouvez ensuite créer une instance de la classe à l'aide de l'API de réflexion. – ewernli
Si vous avez besoin d'utiliser un chargeur de classe existant, vous pouvez utiliser reflexion pour appeler defineClass() sur n'importe quel chargeur de classe que vous choisissez. –