Hola, tengo un problema con el java.lang.NullPointerException, no se muy bien lo que significa, si alguien me lo pudiera explicar.
Y de que modo podria arreglarlo.
| |||
Problema con java.lang.NullPointerException Hola, tengo un problema con el java.lang.NullPointerException, no se muy bien lo que significa, si alguien me lo pudiera explicar. Y de que modo podria arreglarlo.
__________________ Gracias y un saludo |
| |||
Con lo mismo de antes, el problema me viene en public static void main(String[] args){ Huffman huff; if(args.length>0){ try{ huff=new Huffman(args[0]); }catch(NullPointerException e){ System.out.println("Excepció llençada"); } }else{ huff=new Huffman(null); } } //constructor public Huffman(String Nom){ t=new TaulaFreq(Nom); t.ConstruirTaula(); c=new CuaPrioritat(); c.crear(t.taula, t.tamany); arbre=huffman(t.tamany); try{ InsertarArbre(arbre, t.taula, t.tamany, ""); }catch(NullPointerException e){ System.out.println("Excepció llençada"); } //MostrarArbre(arbre); t.MostrarTaula(); codificat=Codificar(t.fitxer); System.out.println("El promitg es: "+t.Promitg()); } Yo lo que quiero es abrir un .txt i leerlo pero no se muy bien como hacerlo, si alguien me puede ayudar...
__________________ Gracias y un saludo |
| ||||
no se que rayos estas intentando hacer con ese codigo(no lo he leido lo suficiente), pero si lo que quieres es simplemente leer un archivo de texto, te sugiero le des un vistazo a esta FAQ http://forosdelweb.com/showpost.php?...4&postcount=10 have funnnnnnnn!!
__________________ Curso de Angular JS - Haremos una app de principio a fin |
| ||||
Y tienes una clase con el algoritmo de encriptación de Huffman... ¿en qué lugar es que lanza la excepción? ¿No has traceado el programa? Si describieras mejor que es lo que necesitas tal vez alguien podría ayudarte mejor. Saludos!
__________________ El último TipdaR |
| |||
Respuesta: Problema con java.lang.NullPointerException hola. A mi me sale un error como ese de "java.lang.NullPointerException" tambien. A ver si consigo explicarme. Yo tengo un programa, que lo tengo divido en dos ficheros (clases o como se llamen xD) dentro del mismo paquete, llamemoslos "programa1" y "programa2". Y en uno de ellos (el "programa2") creo un objeto del otro. A partir de ese objeto, estando en el "programa2" llamo a una funcion que esta definida en el "programa1" y entonces al ejecutarlo, cuando llega a ese punto me sale el error. ¿¿alguna idea?? |
| |||
Respuesta: Problema con java.lang.NullPointerException Chica seguramente las referencias de un programa al otro estan mal hechas... ya que es un error con NullPointerException lo mas propable es que estes referenciando un null. |
| |||
Misma duda Buenas, me pasa tres cuartos de lo mismo, es decir me sale el mismo error, pero no entiendo porqué ya que hago caso a "Tipdar", es decir, tengo puesto un if donde recojo que pueda ser un null, copio parte del código a continuación: do { System.out.println("Has elegido consultar los datos de un inversor."); System.out.println(""); System.out.println("Dime la potencia del inversor a consultar: "); inverter.setPower(teclado.readLine()); //Llamada a la fachada o FACADE InverterFACADE inverterfacaderead = new InverterFACADE(); inverter=inverterfacaderead.ReadByPower(inverter); if (inverter!=null) { System.out.println("Los datos del inversor seleccionado son: " + "Power "+inverter.getPower()+", Temperature "+ inverter.getTemperature()+", Moisture "+inverter.getMoisture()+ " y Performance "+inverter.getPerformance()); } else { System.out.println ("Este inversor no existe"); } System.out.println("¿Desea consultar algún otro inversor? Responda si o no"); respuesta = teclado.readLine(); /*El if y el else if son para cuando el usuario da otra respuesta que no sea"si" o "no", que son las que se les pide, ya sean SI, NO, u otra cualquiera.*/ while(!respuesta.equals("si")&& !respuesta.equals("no")) { System.out.println("Te has equivocado de respuesta, inténtalo de nuevo."); System.out.println("¿Quieres consultar inversor? Responde si o no"); respuesta=teclado.readLine(); } } while (respuesta.equals("si")); El caso es que si hago una primera consulta y no hay ningún registro con ese valor, sigue el código, y pregunta de nuevo, pero si le digo que sí y hago una segunda consulta, y tampoco hay un registro con ese valor, entonces me dá el error. Si podéis ayudarme os lo agradecería. Un saludo |
| ||||
Respuesta: Problema con java.lang.NullPointerException A mí me tiraba este error con un botoncito rojo debajo a la derecha el netbeans... nunca supe qué era, pero no me trancaba todo y tenía que cerrar el IDE. Saludos. |
| |||
Respuesta: Problema con java.lang.NullPointerException Tengo el mismo error. En mi caso viene al comparar arrays. Tengo un programa para hacer un histograma con los pesos de los alumnos. He aqui el código: Cita: Y he aqui la clase y los métodos de la clase.../*Se desea realizar programa que lea los pesos de los alumnos y haga un histograma con los pesos de los alumnos de un determinado curso. Si el peso no tiene ningún alumno no sale. Entre 50 y 100 kg.*/ package histograma; import java.lang.reflect.Array; import java.util.*; public class Histograma { public static void main(String[] args) { int temp=0,vector[]; Scanner sc=new Scanner(System.in); System.out.print("¿Cuantos alumnos tienes?"); int nPeso=sc.nextInt(); clase Pesos=new clase(nPeso); Pesos.RellenarArray(); Pesos.mostrarHistograma(); } } Cita: Edito:package histograma; import java.util.*; public class clase { public int n,vector[],histograma[][]; public clase(int n) { dimensionarArray(n); } public void dimensionarArray(int n) { vector=new int[n]; } public void RellenarArray(){ Scanner sc=new Scanner(System.in); System.out.println("Introduce el peso de los alumnos\n"); for (int i=0;i<vector.length;i++) { do { System.out.print("Alunmno nº "+(i+1)+":"); n=sc.nextInt(); if (n>=50&&n<=100) { vector[i]=n; } else { System.out.println("Solo sirven los valores entre 50 y 100."); } }while(vector[i]<50||vector[i]>100); } Arrays.sort(vector); crearHistograma(); } public void crearHistograma() { int histograma[][]=new int[2][vector.length]; for (int j=0;j<vector.length;j++) { histograma[0][j]=vector[j]; for (int k=0;k<vector.length;k++) { if (histograma[0][j]==vector[k]) { histograma[1][j]++; } } } } public void mostrarHistograma() { for (int i=0;i<vector.length-1;i++)//De los valores repetidos, dejo a 0 todas las casillas con valores repetidos excepto la última para cada valor repetido. { if (vector[i]==vector[i+1]) { vector[i]=0; } } for (int i=0;i<vector.length;i++)//Ahora que solo se repiten 1 vez, muestro los que coinciden. { if (vector[i]==histograma[0][i]) // <-- Según el netbeans, es en esta línea donde salta el error. { System.out.println(histograma[0][i]+" "+histograma[1][i]); } } } } Creo saber donde está el error, pero no se como solucionarlo. El netbeans me lanza un aviso (bombilla amarilla) sobre esta línea... Cita: Esto me hace pensar, que en el método donde dimensiono el array histograma, coge el array histograma como variable local... con lo que al acabar el método, histograma queda igualmente vacio, y sin datos. Así pues, luego al ir a comparar en el método mostrarHistograma, da error pues los valores de histograma no se han guardado y están todos en null. public void crearHistograma() { int histograma[][]=new int[2][vector.length]; <--mensaje del netbeans: La variable local oculta un campo. Si esta suposición es correcta... como arreglo esto? Última edición por Kritik; 29/06/2012 a las 13:56 |
| ||||
Respuesta: Problema con java.lang.NullPointerException Si usas un IDE muchos tienen la opcion de DEBUG usala ys eguro encontrarás extactamente tu falla...... A la hora de que te lanza la excepcion puedes usar un ex.printStackTrace() y te dira que excepción ocurre y en que lineas se originó.... Es evidente que un objeto que tienes de clarado no lo has seteado algun valor si yo hago esto:
Código:
Podria marcar un nullPointerException, por que el objeto de la clase prueba no esta creado, solo tienes la clase pero no el objeto de esa clase (no se si ese codigo lance null aki no tengo compilador haha)...public class uno { public static void main(String[] args) { prueba obj; System.out.println(obj.metodo()); } } class prueba { public String metodo() { return "El objeto esta instanciado!"; } } En algun momento es muy probable que al manejar tus objetos hagas lo mismo, en el caso de mi ejemplo se arregla asi:
Código:
sin embargo en algunas aplicaciones hacer el new significa crear una instancia totalmente nueva de un objeto del cual no puedes hacerlo como un GUI (mal diseñada) por que te apareceria lo mismo 2 veces, alli cuando necesitas pasar un objeto puedes usar un getter en una clase para pasar el objeto con sus valores y copiarlo a otro objeto de tu clase... ejemplo:public class uno { public static void main(String[] args) { prueba obj = new prueba(); System.out.println(obj.metodo()); } } class prueba { public String metodo() { return "El objeto esta instanciado!"; } }
Código:
public class uno { //tengo mi variable (clase) que no esta hecha objeto aún //si la uso asi nomas da NullPointerException private static Prueba miObjeto; public static void main(String[] args) { //creo un obj para usar getter Dos obj2 = new Dos(); //uso el getter para traer el valor del objeto ya instanciado, osea no lo instancio aqui si no que ya viene miObjeto = obj2.getObj(); //tambien puede ser asi: miObjeto = (new Dos()).getObj(); //ahora uso los metodos sin tener un nullPointer! System.out.println(miObjeto.metodo()); } } class Dos { private Prueba obj; //el objeto no se puede acceder desde afuera //constructor public Dos() { obj = new Prueba(); } //genero un getter para sacar el objeto desde fuera public Prueba getObj() { return obj; } } class Prueba { public String metodo() { return "El objeto esta instanciado!"; } }
__________________ De nada, hay te encargo +1... |
| |||
Respuesta: Problema con java.lang.NullPointerException Hola muy buenas tardes me gustaria tener ayuda de los expertos en Java tengo un programa simple donde QUIERO MOSTRAR los DATOS de una tabla MYSQL 5.5 donde me sale el error este:
Código:
Donde me indica que el error esta en MostrarDatos_jsp.java:80 (lo busque en la clase generada y me sale error en el: String A7 = rsSel.getString(15); )Estado HTTP 500 - type Informe de Excepción mensaje descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento. excepción org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /MostrarDatos.jsp en línea 17 14: Conexion con = new Conexion(); 15: cn = con.Conn(); 16: CallableStatement cstm; 17: cstm = cn.prepareCall("{call ListarBus}"); 18: ResultSet rsSel = cstm.executeQuery(); 19: while (rsSel.next()) { 20: String ID = rsSel.getString(1); Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) causa raíz java.lang.NullPointerException org.apache.jsp.MostrarDatos_jsp._jspService(MostrarDatos_jsp.java:80) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/7.0.27. Apache Tomcat/7.0.27 este es el jsp : MostrarDatos.jsp
Código:
Y este es EL SERVLETS: Conexion.java<%@page import="Conn.Conexion"%> <%@page import="java.sql.*"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Mostrar Asientos Disponibles</title> </head> <body> <% int xN = 0; Connection cn = null; Conexion con = new Conexion(); cn = con.Conn(); CallableStatement cstm; cstm = cn.prepareCall("{call ListarBus}"); ResultSet rsSel = cstm.executeQuery(); while (rsSel.next()) { String ID = rsSel.getString(1); String Fecha = rsSel.getString(2); String Bus = rsSel.getString(3); String Origen = rsSel.getString(4); String Destino = rsSel.getString(5); String Salida = rsSel.getString(6); String Llegada = rsSel.getString(7); String Chofer = rsSel.getString(8); String A1 = rsSel.getString(9); String A2 = rsSel.getString(10); String A3 = rsSel.getString(11); String A4 = rsSel.getString(12); String A5 = rsSel.getString(13); String A6 = rsSel.getString(14); String A7 = rsSel.getString(15); String A8 = rsSel.getString(16); String A9 = rsSel.getString(17); String A10 = rsSel.getString(18); String Precio = rsSel.getString(19); String Stado=rsSel.getString(20); xN++; %> <p><%=ID%><br></p> <p><%=Fecha%><br></p> <p><%=Bus%><br></p> <p><%=Origen%><br></p> <p><%=Destino%><br></p> <p><%=Salida%><br></p> <p><%=Llegada%><br></p> <p><%=Chofer%><br></p> <p><%=A1%><br></p> <p><%=A2%><br></p> <p><%=A3%><br></p> <p><%=A4%><br></p> <p><%=A5%><br></p> <p><%=A6%><br></p> <p><%=A7%><br></p> <p><%=A8%><br></p> <p><%=A9%><br></p> <p><%=A10%><br></p> <p><%=Precio%><br></p> <p><%=Stado%><br></p> <% } rsSel.close(); cstm.close(); con.desconectar(); %> </body> </html>
Código:
porfavor urgente donde esta el problema no se he intentado todo las soluciones pero no se porque sucede eso es PRIMERA VES QUE TRABAJO CON MYSQL . package Conn; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Conexion { private String url = "jdbc:mysql://localhost/cascas"; //El usuario de la base de datos private String user = "root"; //La clave del usuario de la base de datos private String password = "zoldado"; //Metodo para obtener la conexion con la base de datos public Conexion() { } Connection cn = null; public String error = ""; public Connection Conn() { try { Class.forName("com.mysql.jdbc.Driver"); cn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { System.out.println("No se encontro Driver"); } catch (SQLException e) { System.out.println("No se encontro la Conexion"); } finally { return cn; } } public void desconectar() { try { cn.close(); } catch (Exception e) { System.out.print(e.toString()); error = e.toString(); } } } en fin de ANTEMANO MUCHAS GRACIAS |