Java:erreur compilation

Résolu
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. 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
    1. 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
      1. 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. Modérateur
          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
      2. Modérateur
        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. Modérateur
          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
      3. 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
        1. Modérateur
          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