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
A voir également:

6 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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
Thyjukil Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   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
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
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
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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
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
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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