Java:erreur compilation

[Résolu/Fermé]
Signaler
-
 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

Messages postés
16405
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
20 octobre 2021
2 900
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
43
Date d'inscription
jeudi 24 mai 2012
Statut
Membre
Dernière intervention
7 mai 2014
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();
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
960
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

Messages postés
16405
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
20 octobre 2021
2 900
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)
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
Messages postés
16405
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
20 octobre 2021
2 900
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 !
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
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()
	  {}
  }
  }