Problème de chargement dynamique lorsque le programme est exécuté à partir d'un fichier jar

StackOverflow https://stackoverflow.com/questions/1600769

Question

J'ai une application qui peut être étendue via des classes java conformes à une interface donnée. Si j'exécute le programme à partir des classes de ligne de commande, je peux instancier les classes complémentaires à l'aide de:

Class.forName("myAddon").newInstance();

Cependant, si je lance l'application (en configurant correctement la classe principale), j'obtiens une exception classe non trouvée. Quelqu'un peut-il nous éclairer sur ce qui se passe ici?

TIA, Adam

Était-ce utile?

La solution

J'ai réussi à le faire fonctionner à l'aide d'un URLClassLoader, en spécifiant le chemin de recherche comme étant le répertoire actuel, comme suit:

URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});

Merci pour votre aide,

Adam

Autres conseils

La classe que vous recherchez ne figure pas dans le chemin de classe. Si c'est dans un répertoire

i.e. MyClass.class MonJar.jar

Vous devez faire:

java -classpath . -jar MyJar.jar

Mais en réalité, nous avons besoin de plus d’informations pour répondre à la question. Quelle est la classe principale définie dans le manifeste de jar? Quel est ton parcours? Comment spécifiez-vous la classe à charger?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top