Aller au contenu
View in the app

A better way to browse. Learn more.

Next

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Résolu] Java: compiler en utilisant d'autres fichiers .class

Featured Replies

Posté(e)

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

Posté(e)
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 ? 

 

Posté(e)

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

Modifié par CryoGen

Posté(e)
  • Auteur

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).

Modifié par brice.wernet

  • r.chatigré a modifié le titre en [Résolu] Java: compiler en utilisant d'autres fichiers .class

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.