brice.wernet Posté(e) le 30 avril 2020 Partager Posté(e) le 30 avril 2020 Bonjour, Je reprends un peu de programmation Java (après 10 ans), je cherche à créer un plugin pour une appli existante. L'appli existe, chaque plugin doit étendre une classe qui est issue du .war. mon code: import appli.plugins.*; public class MonPlugin extends Pluginbase // PluginBase est appli.plugins.PluginBase { ... "implémentation bidon" ... } J'ai sorti les .class en respectant la structure appli/plugins/Pluginbase.class Quand je compile, javac ne trouve pas la class. J'ai essayé: javac MonPlugin.java javac MonPlugin.java -classpath . Dans les deux cas j'ai les messages MonPlugin.java:6: error: cannot find symbol public class MonPlugin extends BasePlugin ^ symbol: class BasePlugin MonPlugin.java:39: error: cannot find symbol return super.GenereNumero(d); ^ symbol: variable super location: class MonPlugin javac MonPlugin.java -classpath appli/plugins/ -<=> là j'ai deux messages d'erreur: MonPlugin.java:1: error: package appli.plugins does not exist import appli.plugins.*; ^ MonPlugin.java:6: error: cannot access PluginBase public class MonPlugin extends PluginBase ^ bad class file: appli\plugins\BasePlugin.class class file contains wrong class: appli.plugins.BasePlugin Please remove or make sure it appears in the correct subdirectory of the classpath. Des idées sur comment je peux configurer mon environnement de dév? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
refuznik Posté(e) le 30 avril 2020 Partager Posté(e) le 30 avril 2020 Je vais peut-être dire une bétise java ça fait loin et je ne suis pas très bon. javac -cp $CLASSPATH:. MonPlugin.java Ca donne quoi ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
CryoGen Posté(e) le 30 avril 2020 Partager Posté(e) le 30 avril 2020 Si la fonction GenereNumero() est bien public ou protected dans BasePlugin, alors n'utilise pas "super." devant. La 1ere erreur ne dit pas qu'il ne trouve pas la class BasePlugin, mais le symbol super qui effectivement semble mal utilisé ici. Je peux dire des conneries, ca fait au moins 10 ans que je n'ai pas touché à Java Lien vers le commentaire Partager sur d’autres sites More sharing options...
brice.wernet Posté(e) le 30 avril 2020 Auteur Partager Posté(e) le 30 avril 2020 C'est bon, j'ai trouvé. Il manquait une des dépendances, un .jar que j'ai ajouté dans la ligne de commande. La solution est donc: javac MonPlugin.java -classpath ".;/lib/malib.jar" Merci pour les réponses! ordre des paramètres de javac: pas d'incidence mot clé super mal utilisée: si "super" n'était pas défini, c'est parce que le compilateur n'avait pas trouvé la classe de base et donc pas pris en compte que c'était dans un héritage (donc pas de super). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.