Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

Java erreur "java.lang.NullPointer.Exception

Makari, le mardi 24 mai 2005 à 17:19:05 
 Signaler ce message aux modérateurs

Bonjour,
voila, j'ai fait un programme qui utilise des classes,des objets et tout, je l'enregistre ds un fichier .dat, je ferme le prog, je le reouvre, je charge l'enregistrement (jusque la tout va bien) mais qd je fais appel a une methode d'un objet du tableau d'objet d'enregistrement ca plante avec l'erreur :java.lang.NullPointer.Exception

Je suis debutant et j'ai du mal a tout comprendre, si quelqu'un pouvait me mettre sur la voie ca serait sympa ^^.

(je sais pas si ca peut aider mais voila comment marche en gros mon prog :

-il cré un obj "assoc" qui est structuré par des variables et un tableau d'objets de type "membre", un objet de type membre est composé de variables et de tableaux d'objets "achat" et "credit" qui st eux memes composés de variables simples
-il y'a plein de methodes pour afficher, modifier etc les differentes données

et ca plante lorsque j'utilise une methode de la classe membre.
sinon je voulai preciser que tant que je ne sauvegarde pas, tout marche, c'est seulement quand je recharge le fichier que les methodes plantent.
Je sais pas si c'est clair, j'ai essayé d'expliquer au mieux, merci de votre aide)

1

choubaka, le mardi 24 mai 2005 à 19:47:13

Salut

l'erreur qui est remontée signifie que quelque part dans ton programme tu fais appel à un objet qui n'a pas été instancié. Chouba,
Pochard d'assaut .. 

Répondre à choubaka

2

Makari, le mardi 24 mai 2005 à 21:31:31

Ok, le probleme c'est que, une fois les enregistrements effectués apres la saisie de l'utilisateur l'objet est enregistrer dans un fichier via cette commande :

public void ecrire(Assoc tmp) throws IOException {
if (tmp != null) ofW.writeObject(tmp);
}

cad que l'objet de type Assoc "tmp" est ecrit ds le fichier, mais lorsque que j'extrait le contenu du fichier et que j'essaye d'acceder au tableau d'objets que l'objet de type Assoc possede comme variable le programme plante avec l'erreur dt on parle.

les variables d'un objet "Assoc" st les suivantes :

static Membre [] listeM;
private int nbMembre;
private float capital;
private String nomassoc;
byte rep;
int numM;

et celles d'un "Membre" celles ce :

private String nom, prenom, adresse, ville, cp, telfixe, telport,reponse;
private credit [] tabcredit;
private achat [] tabachat;
private float compte;
private boolean cotisation;
private char repon;
private byte jour,mois,annee,rep;

est ce que lorsqu'on enregistre l'objet de type "Assoc" le tableau de Membres (listeM) est egalement enregistré ds le fichier ? (ainsi que les donnees contenues ds les membres) ?

j'essaye de tester autant que possible et j'ai l'impression que les donnees du tableau listeM (de type Membre) ne s'enregistre pas ..

Répondre à Makari

3

mamiemando, le mercredi 25 mai 2005 à 10:38:32

Oulà oulà du calme :o) Java ça "enregistre" très bien ^^

Bon en gros tu essaies d'affecter des valeurs à des attributs d'un objet non instancié comme on t'a dit plus haut. Exemple

Plop objetplop;
...
objetplop.attributplop="plop"; //<-- Null Pointer Exception

Ca ça plante parce que objetplop n'est pas alloué en mémoire (ie tu n'as pas fait le fameux new !). Il suffit donc que tu repères à quelle ligne ça plante (sur quel objet ça plante) et que tu l'alloues :

Plop objetplop=new Plop();
...
objetplop.attributplop="plop";

C'est aussi le genre d'erreur qui se produit quand on remplit un tableau et qu'on essaie de remplir une case en dehors du tableau.

Bonne chance ;o)

Répondre à mamiemando

4

makkari, le mercredi 25 mai 2005 à 14:17:41

Je comprend pas tres bien, l"erreur me vient au chargement du fichier, si je dois ecrire :

Plop objetplop=new Plop();
...
objetplop.attributplop="plop";

ca veut dire que "attributplop" etait pas enregistré ds le fichier, et si je dois lui redonner des valeurs pour chacun de ses attributs je vois pas a quoi ca sert ..?

lorsqu'on enregistre un objet qui possede comme variable un tableau d'objets, les valeurs de ces objets du tableau sont egalement enregistrée ou non ? (jusque la j'ai pas eu l'impression que ca marchait)

je nage un peu la ^^

merci de votre aide

Répondre à makkari

5

mamiemando, le mercredi 25 mai 2005 à 14:57:01

Je comprend pas tres bien, l"erreur me vient au chargement du fichier, si je dois ecrire [...]

Non ton erreur survient quand tu remplis ta structure de donnée au cours de la lecture du fichier. Nuance ;p

ca veut dire que "attributplop" etait pas enregistré ds le fichier, et si je dois lui redonner des valeurs pour chacun de ses attributs je vois pas a quoi ca sert ..?

C'est un des attributs de ton objet... Supposons que tu as dans un fichier une liste de clients (nom, age, sexe). Tu crées un objet contenant un tableau d'objets Client (ayant pour attributs nom age sexe : donc il faut allouer chacun des clients !). Et ensuite tu les initialises en lisant ton fichier.

Le concept c'est de convertir dans une structure de donnée que tu pourras facilement réutiliser par la suite.

lorsqu'on enregistre un objet qui possede comme variable un tableau d'objets, les valeurs de ces objets du tableau sont egalement enregistrée ou non ? (jusque la j'ai pas eu l'impression que ca marchait)

Non. Il faut les allouer dans le constructeur de ta variable. Fais bien attention à ne pas affecter une 4e valeur dans un tableau de 3 cases. En C ça s'appelle un débordement de pointeur et en java une null pointer exception ;o) Mais c'est en fait la même chose.

Répondre à mamiemando

6

makkari, le mercredi 25 mai 2005 à 20:26:37

Donc si je comprend bien avec la structure suivante :

Assoc
-nom
-capital
-membre[]

il faut un fichier pour enregister l'objet de type Assoc et un fichier pour le tableau de membres, on ne peut pas directement enregistrer l'objet Assoc qui contient le tableau rempli, c'est ca ?

Répondre à makkari

7

mamiemando, le jeudi 26 mai 2005 à 10:02:59

Donc si je comprend bien avec la structure suivante :

Assoc
-nom
-capital
-membre[]


Ca me parait bien.

il faut un fichier pour enregister l'objet de type Assoc et un fichier pour le tableau de membres, on ne peut pas directement enregistrer l'objet Assoc qui contient le tableau rempli, c'est ca ?

Ouais. Tu le crées (new) et ensuite tu le remplis. Et contrairement au C++ tu n'as pas besoin de le détruire car java gère ça pour toi (garbage collector)

Répondre à mamiemando

9

manna007, le mercredi 23 avril 2008 à 13:06:41
  • +1

Bonjour à tous ,
je dev un programme qui sert à faire un transfer d'appel en utilisant JTAPI mais quand je compile il me renvoie java.lang.NullPointer.Exception alors là je ne sais comment le corriger
voilà mon code :
import java.io.IOException;
import javax.telephony.*;
import javax.telephony.events.*;
import javax.telephony.callcontrol.*;
import javax.telephony.callcontrol.events.*;
public class TransferAppl {
public static void main(String[] args){
JtapiPeer peer = null;
Provider prov = null;
CallControlCall call = null;
CallControlCall call2 = null;
Terminal term = null;
TerminalConnection[] tcs = null;
Connection[] cons = null;
try {
peer = JtapiPeerFactory.getJtapiPeer(null);
prov = peer.getProvider(("com.headissue.asterisk.jtapi.gjtapi.AsteriskProvider;Server=X.X.X.X;Port=5038;Login=yyyy;Password=mysecret;IncomingContext=internal;TerminalContext=internal;OutgoingContext=internal"));
term = prov.getTerminal("400");
System.out.println(term.getAddresses()+"!!!!!!!!!!!!!!!!!!");
System.out.println("**********1111*******************");
call = (CallControlCall) prov.createCall();
System.out.println("**********222*******************");
call.connect(term, term.getAddresses()[0], "401");
System.out.println("**********3333*******************");
// Esperamos unos segundos en los que debe descolgar.
System.out.println("**********3333*******************");
Thread.sleep(1000);
System.out.println("**********4444*******************");
// Suponemos que sólo hay una llamada activa en el terminal.
call2 = (CallControlCall) prov.createCall();
System.out.println("**********555*******************");
tcs = call.getConnections()[0].getTerminalConnections();
System.out.println("**********666*******************");
cons = call2.consult(tcs[0], "403");
System.out.println("**********777*******************");
call.setTransferController(call.getConnections()[0].getTerminalConnections()[0]);
System.out.println("**********888*******************");
call2.setTransferController(call2.getConnections()[0].getTerminalConnections()[0]);
System.out.println("**********999*******************");
call.transfer(cons[0].getCall());
System.out.println("**********§§§§§§§§§§§§§§******************");
Thread.sleep(1000);
prov.shutdown();
} catch ( Exception e ){
System.out.println(e.toString());
}
System.exit(0);
}
}
SVP aider moi ????
merci d'avance.

Répondre à manna007

10

choubaka, le mercredi 23 avril 2008 à 13:12:44
  • +1

Salut

"null pointer exception" veut dire qu'un de tes objets n'est pas instancié..

soit à cause d'un mauvais constructeur, soit que tu as oublié de l'appeler



Chouba,
Pochard d'assaut .. 

Répondre à choubaka

11

 manna007, le mercredi 23 avril 2008 à 16:05:04

J'essaie de parcourer mon code autre fois
je change et je fais un constructeur qui contient le contenu du main j'essaie de faire une initiation du parametre Adsresse mais tj meme faute !!!
comment résoudre ce problème!!!

Répondre à manna007
Erreur java java.lang.NullPointerException Bonjour, j'ai cette erreur et je ne sai pas d'ou vient: Exception in thread "main" java.lang.NullPointerException at pdf.(pdf.java:30) at nn.main(nn.java:11) voila la classe pdf: import java.io.File; import java.util.Stack; public class pdf {... www.commentcamarche.net/forum/affich-10356809-erreur-java-java-lang-nullpointerexception
Java.lang.NullPointerException Bonjour, Quand j'essaye d'installer une application sur mon lg shine il me dit :"Le programme d'installation a rencontré une erreur inattendue (java.lang.NullPointerException)" Et l'application est en .jar Je ne comprend pas aidez moi svp :'(... www.commentcamarche.net/forum/affich-11451990-java-lang-nullpointerexception
Java.lang.NullPointerException (Résolu) Bonjour, je débute en Java, je suis tombé sur la fameuse java.lang.NullPointerException mais que dois faire pour régler ce problème? Je sais certainement qu'un pointeur ne dois pointer justement sur rien, ou qu'il existe un pb d'indice, mais en... www.commentcamarche.net/forum/affich-4647845-java-lang-nullpointerexception
[Java]java.lang.NullPointerExceptionBonjour,j'ai problme sur cette erreur toujours, qelqn peut me sauver, svp, merci d'avance java.lang.NullPointerException at extranet.alert.Daemon.processNe(Daemon.java:310) at extranet.alert.Daemon.processSite(Daemon.java:253) at... www.commentcamarche.net/forum/affich-2525616-java-java-lang-nullpointerexception
500 Servlet Exception java.lang.NullPointerExmessage d'erreure que j'obtient apres que je tappe certaines adresse internet 500 Servlet Exception java.lang.NullPointerEx at _general__jsp._jspService(/usr/local/apache/htdocs/general.jsp:49) at com.caucho.jsp.JavaPage.service(JavaPage.java:75) at... www.commentcamarche.net/forum/affich-105974-500-servlet-exception-java-lang-nullpointerex
Exception in thread "main" java.lang.NoCBonjour, j ai une erreur "Exception in thread "main"java.lang.NoClassDefFoundError:" et je m en sors pas..Si quelqu un a une idee.. j ai installe Java Runtime Environment mais quand je test des java classes en retour j ai le message d erreur... www.commentcamarche.net/forum/affich-2261404-exception-in-thread-main-java-lang-noc
Télécharger Java ToolsJava Tools est un IDE très léger pour la création, la compilation, l'exécution et le débogage des applications Java et des applettes. L'outil inclus des points et des clics d'accès aux commandes Java, aux documents, au répertoire et aux fichiers. Il... www.commentcamarche.net/telecharger/telecharger-34056297-java-tools
Java - Les exceptionsLa nécessité de détecter les erreurs Tout programme comporte des erreurs, même si celui-ci semble fonctionner à merveille. Chaque programmeur essaye de réduire au minimum le nombre d'erreurs, mais toutes les erreurs ne peuvent pas forcément être... www.commentcamarche.net/contents/java/javaexc.php3
JavaHistoire de Java Java est un langage objet ressemblant au langage C++. Il a été mis au point en 1991 par la firme Sun Microsystems. Le but de Java à l'époque était de constituer un langage de programmation pouvant être intégré dans les appareils... www.commentcamarche.net/contents/java/javaintro.php3
Java - Caractéristiques du langageFichier source, compilation et machine virtuelle Le fichier source d'un programme écrit en Java est un simple fichier texte dont l'extension est par convention .java. Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un... www.commentcamarche.net/contents/java/javacarac.php3