Welcome to the Java Programming Forums


The professional, friendly Java community. 21,500 members and growing!


The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.


>> REGISTER NOW TO START POSTING


Members have full access to the forums. Advertisements are removed for registered users.

Results 1 to 2 of 2

Thread: Why can't I use debugger?

  1. #1
    Member
    Join Date
    Jul 2012
    Location
    Spain
    Posts
    42
    Thanks
    9
    Thanked 0 Times in 0 Posts

    Default Why can't I use debugger?

    I get this error after trying to debug with a breakpoint in the main method of "Principal" class:

    ClassNotFoundException(Throwable). <init>(String, Throwable) line: 286
    Source not found.

    When I run my programm i get this error:
    Exception in thread "main" java.lang.NullPointerException
    at Ejercicio01.Indice.ordenar(Principal.java:144)
    at Ejercicio01.Indice.<init>(Principal.java:122)
    at Ejercicio01.Principal.main(Principal.java:64)


    I run the debugger, to check why i get these error, then the debugger error, at first time I press "f5" keystroke



    import java.util.Vector;
     
     
    public class Principal {
    	public static void main(String[] args) throws ClassNotFoundException{
    		Vector<Producto> v = new Vector<Producto>();
     
    /**BREAKPOINT HERE*/	
     
    		Producto p1 = new Producto();
    		Producto p2 = new Producto();
    		Producto p3 = new Producto();
    		Producto p4 = new Producto();
    		Producto p5 = new Producto();
     
    		/******************************************/
    		/** Se introducen los valores:            */
    		/******************************************/
    		p1.setNombre("Gorro");
    		p1.setPrecio(10);
    		p1.setReferencia(1);
     
    		p2.setNombre("Bañador");
    		p2.setPrecio(40);
    		p2.setReferencia(2);
     
    		p3.setNombre("Gafas");
    		p3.setPrecio(20);
    		p3.setReferencia(3);
     
    		p4.setNombre("Aletas");
    		p4.setPrecio(30);
    		p4.setReferencia(4);
     
    		p5.setNombre("Toalla");
    		p5.setPrecio(10);
    		p5.setReferencia(5);
    		/******************************************/
     
    		//Se añaden los productos
    		v.add(p1);
    		v.add(p2);
    		v.add(p3);
    		v.add(p4);
    		v.add(p5);
     
    		//Instanciación de un Indice con criterio de ordenación "referencia"
    		Indice indice = new Indice(v, "referencia");
     
    		//Comprobación de los productos albergados
    		for(int i=0; i<0 ;i++)
    			System.out.println(indice.getProductos().elementAt(i).getNombre());
    	}
     
    }
     
    class Producto {
    	private String nombre;
    	private float precio;
    	private int referencia;
    	//Constructor valores vacíos.
    	Producto(){
    		this.nombre = "";
    		this.precio = 0;
    		this.referencia = 0;
    	}
    	//Constructor valores a conveniencia.
    	Producto(String nombre, float precio, int referencia){
    		this.nombre = nombre;
    		this.precio = precio;
    		this.referencia = referencia;
    	}
     
    	//Getters:
    	public String getNombre(){
    		return this.nombre;
    	}
    	public float getPrecio(){
    		return this.precio;
    	}
    	public int getReferencia(){
    		return this.referencia;
    	}
     
    	//Setters:
    	public void setNombre(String nombre){
    		this.nombre = nombre;
    	}
    	public void setPrecio(float precio){
    		this.precio = precio;
    	}
    	public void setReferencia(int referencia){
    		this.referencia = referencia;
    	}
    }
     
    class Indice {
    	private Vector<Producto> productos;
    	private String criterio;
     
     
    	Indice(Vector<Producto> productos, String criterio){
    		this.criterio = criterio;
     
    		//Se ordena según el criterio.
    		ordenar(criterio);
     
    	}
    	public Vector<Producto> getProductos(){
    		return this.productos;
    	}
    	public String getCriterio(){
    		return criterio;
    	}
    	public void ordenar(String criterio){
     
    		//Ordenar por precio
    		if(criterio.equals("precio")){
    			for(int i=0; i<this.productos.size(); i++){
    				for(int j=0; i<this.productos.size(); j++){
    					if(this.productos.elementAt(i).getPrecio() < this.productos.elementAt(j).getPrecio())
    						this.productos.set(i, this.productos.elementAt(j));
    				}
    			}
    		}
    		//Ordenar por referencia
    		else if(criterio.equals("referencia")){
    			for(int i=0; i<this.productos.size(); i++){
    				for(int j=0; i<this.productos.size(); j++){
    					if(this.productos.elementAt(i).getPrecio() < this.productos.elementAt(j).getPrecio())
    						this.productos.set(i, this.productos.elementAt(j));
    				}
    			}
    		}
    		else
    			System.err.println("No se introdujo un criterio de ordenación válido.");
    	}
     
    	public void insertar(Producto nuevo){
    		//Primero se inserta el nuevo producto
    		productos.addElement(nuevo);
     
    		//Ahora se vuelve a ordenar la lista
    		ordenar(this.criterio);
    	}
     
    	//Devuelve un vector con todos los productos que contengan el nombre pasado como argumento
    	public Vector<Producto> buscar(String nombre){
    		Vector<Producto> v = new Vector<Producto>();
     
    		//Se recorre todo el vector de productos en busca de los que tengan el nombre pasado como argumento.
    		for(int i = 0; i<productos.size() ;i++)
    			if(this.productos.elementAt(i).getNombre().equals(nombre))
    				v.add(this.productos.elementAt(i));
    		return v;
    	}
    }


    --- Update ---

    I had 3 class in the same package in different files. But i tried making a single file, but still that error.

    --- Update ---

    When I place a breakpoint at the end of my main method, I am able to debugg, and it goes directly to the line that make the error.
    Don't understand why placing breakpoint at the start It occurs the error that i told you before.


  2. #2
    Junior Member
    Join Date
    Apr 2013
    Posts
    14
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: Why can't I use debugger?

    to see the errors of your codes...

Similar Threads

  1. While Loop Confounds JDK's Command Line Debugger (jdb)
    By christerlin in forum Loops & Control Statements
    Replies: 4
    Last Post: August 16th, 2012, 03:10 PM