Java:erreur compilation

Résolu
domxaline -  
 domxaline -
Bonjour,

prg suivant compile pas,
veuillez m'aidez svp
public class Essaie1 
{
	//public class UseInterface  
		  public static void main(String[]args)
		  {
			Nouvel1 hamelet=new Nouvel1();
			Nouvel2 juliet=new Nouvel2();
			hamelet.ShowLine();
			juliet.AuthorName();
		  }  
  public interface FamousLine
  {
	  void ShowLine();  
  }
  class Nouvel1 implements FamousLine
  {
	  public void ShowLine()
	  {
		  System.out.println("To be,or not to be");
	  }
  }
  class Nouvel2 extends Nouvel1 implements FamousLine
  {
	  public void AuthorName()
	  {
		  System.out.println("Shakespeare");
	  }
	}
  }}}

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

at Essaie1.main(Essaie1.java:4)

la ligne 4 est:
public static void main(String[]args)
merci à vos aides

6 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Je te l'ai déjà dit hier, avant d'exécuter ton code, tu dois compiler tes classes sans erreur ! Or ici c'est un message d'erreur d'exécution que tu as, il t'indique qu'il y a une erreur à la compilation , il faut donc regarder les erreurs de la compilation et les corriger !

    Essaie1.java:29: error: class, interface, or enum expected
      }}}
       ^
    1 error

    Essaie1.java:6: error: non-static variable this cannot be referenced from a static context
                            Nouvel1 hamelet=new Nouvel1();
                                            ^
    Essaie1.java:7: error: non-static variable this cannot be referenced from a static context
                            Nouvel2 juliet=new Nouvel2();
                                           ^
    2 errors
    1
  2. Thyjukil Messages postés 48 Statut Membre 4
     
    Bonjour,

    Ton code me donnait comme erreur :
    No enclosing instance of type Essaie1 is accessible. Must qualify the allocation with an enclosing instance of type Essaie1 (e.g. x.new A() where x is an instance of Essaie1).
    at Essaie1.main(Essaie1.java:6)

    Si tu cherches une explication sur cette erreur, renseigne-toi plus en détail sur le net. Je n'ai pas vraiment le temps de m'y pencher et l'exemple donné dans l'erreur suffit à résoudre le problème.

    Si tu suis ce que te dit l'erreur, tu dois donc créer une instance de Essaie1 dans ton main, et créer les deux autres instances à partir de celle-ci.

    Ton code devient donc quelque chose comme :

    Essaie1 e = new Essaie1();
    Nouvel1 hamelet=e.new Nouvel1();
    Nouvel2 juliet=e.new Nouvel2();
    0
  3. jisisv Messages postés 3678 Statut Modérateur 936
     
    Ceci devrait fonctionner:
    johand@osiris: ~/tmp $ cat FamousLine.java 
    public interface FamousLine
    {
        void ShowLine();  
    }
    johand@osiris: ~/tmp $ cat Essaie1.java
    public class Essaie1 
    {
        //public class UseInterface  
        public static void main(String[]args)
        {
    	Nouvel1 hamelet=new Nouvel1();
    	Nouvel2 juliet=new Nouvel2();
    	
    	hamelet.ShowLine();
    	juliet.AuthorName();
    	
        }  
    }
    
    class Nouvel1 implements FamousLine
    {
        public void ShowLine()
        {
    	System.out.println("To be,or not to be");
        }
    }
    
    class Nouvel2 extends Nouvel1 implements FamousLine
    {
        public void AuthorName()
        {
    	System.out.println("Shakespeare");
        }
    }
    
    
    johand@osiris: ~/tmp $ javac Essaie1.java FamousLine.java 
    johand@osiris: ~/tmp $ java Essaie1 
    To be,or not to be
    Shakespeare
    johand@osiris: ~/tmp $ ltr *class
    -rw-r--r-- 1 johand johand 409 mai 29 11:23 Nouvel2.class
    -rw-r--r-- 1 johand johand 423 mai 29 11:23 Nouvel1.class
    -rw-r--r-- 1 johand johand 126 mai 29 11:23 FamousLine.class
    -rw-r--r-- 1 johand johand 379 mai 29 11:23 Essaie1.class

    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      En effet, c'est comme cela que je l'avais corrigé aussi, cela dit j'avais préféré orienter domxaline vers une étude approfondie du compilateur pour commencer à prendre un peu son autonomie et ne pas venir sur le forum à chaque fois qu'il lui manque un point-virgule (cf. ici)
      0
  4. domxaline
     
    bonjour
    pour chere KX
    où est ce que vous avez trouvé tant des erreurs,dans mon prg il y a qu'un seul erreur sur la ligne 4
    "public static void main(String[]args)"
    et erreur est
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:

    en plus si vous voulez pas m'aider passer votre chemin pourquoi cette acharnement,peut être vous êtes un génie informatique ou dieu ;mais je ne suis pas,je suis un simple novice,je n'ai jamais allé au cours java,m'apprend par le net,le problème que vous voyez en flagrant,je ne le vois pas tout de suite;
    c'est vous qui m'indiquez et je corrige ,personne né un souris à la main,on l'apprend petite à petite,merci pour votre compréhension
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Ce que je voulais dire (et que visiblement tu n'as pas compris, mais je vais le réexpliquer) c'est que les erreurs qui sont affichées "Unresolved compilation problem" sur la ligne 4, c'est une exception qui est levé à l'exécution (avec la commande java) et indique que la compilation a échoué !
      Il faut donc se référer aux erreurs de la compilation (commande javac) où l'on trouve d'abord l'erreur ligne 29, puis une fois corrigée, les erreurs lignes 6 et 7...

      "en plus si vous voulez pas m'aider passer votre chemin pourquoi cette acharnement"
      Si je voulais pas t'aider, et bien je ne t'aiderais pas ! De mon, point de vue l'acharnement serait plutôt à essayer de te faire comprendre tes erreurs par toi même, et à régulièrement me répéter, mais si tu préfères que je passes mon chemin alors soit ! Je m'en vais donc user mon temps à fournir mon aide à ceux qui sauront les apprécier à leur juste valeur !
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. domxaline
     
    pour Thyjukil

    j'ai éssayé comme vous m'avez dit
    Essaie1 e = new Essaie1();
    Nouvel1 hamelet=e.new Nouvel1();
    Nouvel2 juliet=e.new Nouvel2();
    

    j'ai aucune out put,mais le mot hamelet et juliet sont souligné
    en mettant le curseur de souris sur le mot apparait le message suivantes
    local variable hamelet is never read
    local variable juliet is never read
    0
  7. domxaline
     
    merci beaucoup,j'ai corrigé mon erreur
    public class Essaie1 
    {
    		  public static void main(String[]args)
    		  { 
    			Essaie1 t=new Essaie1();
    			Nouvel1 hamlet=t.new Nouvel1();
    			Nouvel2 Julies=t.new Nouvel2();
    			hamlet.ShowLine();
    			Julies.AuthorName();
    		  }  
    		  
      public interface FamousLine
      {
    	  void ShowLine();  
      }
      class Nouvel1 implements FamousLine
      {
    	  public void ShowLine()
    	  {
    		  System.out.println("To be,or not to be");
    	  }
      }
      class Nouvel2 extends Nouvel1 
      {
    	  public void AuthorName()
    	  {
    		  System.out.println("Shakespeare");
    	  }
    	  public void showLine()
    	  {}
      }
      }
    
    0