Foros del Web » Programación para mayores de 30 ;) » Java »

problema al compilar classes

Estas en el tema de problema al compilar classes en el foro de Java en Foros del Web. hola tengo dos clases: ConsultaAgenda y Contacto. ConsultaAgenda usa a Contacto. La clase contacto la compile sin problema por medio de Consola o shell con ...
  #1 (permalink)  
Antiguo 07/05/2007, 23:31
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
problema al compilar classes

hola tengo dos clases:

ConsultaAgenda y Contacto.

ConsultaAgenda usa a Contacto. La clase contacto la compile sin problema por medio de Consola o shell con el comando javac, el problema surge al tratar de compilar la clase ConsultaAgenda, al parecer no encuentra a la clase contacto.

aqui va el codigo de ambas.

Contacto:
Código:
package chuidiang.ejemplos;

public class Contacto {
	int id;
	String nombre;
	String apellido;
	String telefono;
	public String getApellido() {
		return apellido;
	}
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getTelefono() {
		return telefono;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
}
class ConsultaAgenda:
Código:
package chuidiang.ejemplos;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.LinkedList;

public class ConsultaAgenda 
{
   public static LinkedList<Contacto> getContactos()
   {
      LinkedList<Contacto> listaContactos=new LinkedList<Contacto>();
      try
      {
         Class.forName("org.gjt.mm.mysql.Driver");
         Connection conexion = DriverManager.getConnection(
            "jdbc:mysql://localhost/prueba", "aaa", "aaa");
         Statement st = conexion.createStatement();
         ResultSet rs = st.executeQuery("select * from users" );
         while (rs.next())
         {
            Contacto contacto = new Contacto();
            contacto.setId(rs.getInt("id"));
            contacto.setNombre(rs.getString("username"));
            contacto.setApellido(rs.getString("email"));
            contacto.setTelefono(rs.getString("password"));
            listaContactos.add(contacto);
         }
         rs.close();
         st.close();
         conexion.close();
      }
      catch (Exception e)
      {
         e.printStackTrace();
      }
      return listaContactos;
   }
}
Que significan que a LinkedList se le antepone <Contacto>? (LinkedList<Contacto>).

El error que me arroja es el siguiente:
Código:
C:\Program Files\Apache Software F
B-INF\classes\chuidiang\ejemplos>j
ConsultaAgenda.java:11: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
   public static LinkedList<Contac
                            ^
ConsultaAgenda.java:13: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
      LinkedList<Contacto> listaCo
                 ^
ConsultaAgenda.java:13: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
      LinkedList<Contacto> listaCo

ConsultaAgenda.java:23: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
            Contacto contacto = ne
            ^
ConsultaAgenda.java:23: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
            Contacto contacto = ne

5 errors
Como se deben de compilar, me falta algo?
Gracias y saludos.
  #2 (permalink)  
Antiguo 08/05/2007, 07:27
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

ninguna idea de como compilar las dos clases de arriba?
  #3 (permalink)  
Antiguo 08/05/2007, 08:40
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: problema al compilar classes

Hola:

crea un directorio chuidiang, debajo uno ejemplos y debajo mete los dos ficheros Contacto.java y ConsultaAgenda.java

Vete al directorio padre de chuidiang y compila asi

javac chuidiang\ejemplos\ConsultaAgenda.java chuidiang\ejemplos\Contacto.java

si aun así no te va, si estás en windows, pon antes de compilar

set CLASSPATH=.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 08/05/2007, 08:41
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Re: problema al compilar classes

Cita:
Iniciado por zsamer Ver Mensaje
ninguna idea de como compilar las dos clases de arriba?
Wenas

Seguramente no tienes incluida en el classpath la clase Contacto. pon aqui el javac que ejecutas.

http://www.itapizaco.edu.mx/paginas/...eB/capb-2.html

Saludos.
  #5 (permalink)  
Antiguo 08/05/2007, 13:33
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

Muy agradecido por las respuestas, lo que he echo hasta ahora es crear los directorios (paquetes)
Luego coloqué las clases fuente(java) Contacto.java y ConsultaAgenda.java dentro del directorio (Proyecto/WEB-INF/classes/chuidiang/ejemplos/)

Un vez las clases copiadas dentro del directorio mencionado, abrí la consola de DOS y abrí el directorio donde estan ambas clases ( cd c:/......Proyecto/WEB-INF/classes/chuidiang/ejemplos)
Luego dentro del directorio ejecuté lo siguiente:
Código:
javac Contacto.java
La compilación se realiza sin problema.

Luego de compilar Contacto.java, traté de compilar ConsultaAgenda.java (sin éxito).

Código:
javac ConsultaAgenda.java
Y falló arrojando lo siguiente:

Código:
C:\Program Files\Apache Software F
B-INF\classes\chuidiang\ejemplos>j
ConsultaAgenda.java:11: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
   public static LinkedList<Contac
                            ^
ConsultaAgenda.java:13: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
      LinkedList<Contacto> listaCo
                 ^
ConsultaAgenda.java:13: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
      LinkedList<Contacto> listaCo

ConsultaAgenda.java:23: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
            Contacto contacto = ne
            ^
ConsultaAgenda.java:23: cannot fin
symbol  : class Contacto
location: class chuidiang.ejemplos
            Contacto contacto = ne

5 errors
Gracias por cualquier ayuda.
  #6 (permalink)  
Antiguo 08/05/2007, 14:11
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: problema al compilar classes

Hola:

Tienes que ir al directorio

cd c:/......Proyecto/WEB-INF/classes

y compiliar

javac chuidiang/ejemplos/*.java

Se bueno
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 08/05/2007, 20:10
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

gracias por sus respuestas y ayuda, funciono perfecto.

quedé con la duda siguiente, entube buscando en google pero no encontré una explicación.

¿Que significan que a LinkedList se le anteponga <Contacto>?
ej:
Cita:
LinkedList<Contacto> listaContactos=new LinkedList<Contacto>();
El otro problema que tengo es que no me muestra ningún dato de la consulta, la tabla están con información y está bien configurada la conexión a mysql, lo raro es que no muestra ningún error, simplemente no trae los datos.

el jsp es el siguiente:

Cita:
<!-- Los import -->
<%@ page language="java" %>
<%@ page import = "chuidiang.ejemplos.Contacto"%>
<%@ page import = "chuidiang.ejemplos.ConsultaAgenda"%>
<%@ page import = "java.util.LinkedList"%>
<html>
<body>
<h1>Consulta a base de datos</h1>
<table border="1">
<tr>
<td>id</td>
<td>nombre</td>
<td>apellido</td>
<td>telefono</td>
</tr>
<%
LinkedList<Contacto> lista = ConsultaAgenda.getContactos();

for (int i=0;i<lista.size();i++)
{
out.println("<tr>");
out.println("<td>"+lista.get(i).getId()+"</td>");
out.println("<td>"+lista.get(i).getNombre()+"</td>");
out.println("<td>"+lista.get(i).getApellido()+"</td>");
out.println("<td>"+lista.get(i).getTelefono()+"</td>");
out.println("</tr>");
}
%>
</table>
</body>
</html>
Gracias por la paciencia y saludos.

Última edición por zsamer; 08/05/2007 a las 20:50
  #8 (permalink)  
Antiguo 08/05/2007, 22:03
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: problema al compilar classes

Hola:

En versiones de java anteriores a la 5 sólo se ponía LinkedList, sin más. Estas listas admitian cualquier Object y cuando lo obtenías el dato tenías que hacer un "cast"

Código:
LinkedList lista = new LinkedList();
lista.add(new Integer(3));
Integer a = (Integer)lista.get(0);
A partir de java 5 se añadieron los "genéricos". Al declarar la lista puedes decir qué tipo de elementos va a tener dentro, así te ahorras el cast y la lista sólo admite elementos de ese tipo

Código:
LinkedList<Integer> lista = new LinkedList<Integer>();
lista.add(new Integer(3));
Integer a = lista.get(0);
En cuanto a lo de que no salen resultados, es difícil de decir. Si dices que está todo bien, que hay datos en la tabla, que no sale ningún error....

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #9 (permalink)  
Antiguo 08/05/2007, 22:43
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

gracias por la respuesta, ya solucioné el problema de mostrar los resultados

saludos y gracias nuevamente.
  #10 (permalink)  
Antiguo 09/05/2007, 18:28
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

Por curiosidad me surgió una duda.
¿Es posible tener un jsp que importe clases no compiladas y que estas sean interpretadas, osea que no sea necesario compilarlas para su interpretación?

gracias y saludos.
  #11 (permalink)  
Antiguo 09/05/2007, 23:25
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: problema al compilar classes

Hola:

No te puedo asegurar nada, porque en el mundo java nunca se sabe. En principio no se puede.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #12 (permalink)  
Antiguo 09/05/2007, 23:33
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

Gracias chuidiang, ahora estoy analizando por donde me tiro, si es por el lado de los servlet o los javabeans.

¿Cuales son las diferencias de desarrollar una ampliación con uno u el otro?
Entre uno y otro deben de haber pro y contra.

gracias y saludos.
  #13 (permalink)  
Antiguo 10/05/2007, 09:29
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: problema al compilar classes

Hola:

Pues básicamente que son totalmente distintos y no tienen nada que ve el uno con el otro, salvo que con javabeans te refieras a EJB.

Si te refieres a EJB, en principio jsp es más sencillo y útil para aplicaciones simples. EJB es mucho despliegue para hacer una cosa pequeña.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #14 (permalink)  
Antiguo 10/05/2007, 12:05
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

Gracias por responder, me refería a un javabeans simple (NO enterprise EJB).

Parece que estoy confundido con el significado y uso de los JavaBeans, el siguiente código corresponde a un uso de JavaBeans?

Código:
<jsp:useBean id="mybean" scope="session" class="org.me.hello.NameHandler" />
<jsp:setProperty name="mybean" property="*" />
        <h1>Hello, <jsp:getProperty name="mybean" property="name" />!</h1>
Si es así cuando conviene usar un servlet o javabeans, o se pueden usar en conjunto.

Según los ejemplos que he visto ya sea con servlet o javabeans se pueden hacer mas menos las mismas cosas, probablemente este muy equivocado.

Gracias y Saludos.
  #15 (permalink)  
Antiguo 10/05/2007, 23:00
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: problema al compilar classes

Hola:

Un bean de java no es más que una clase con métodos set y get para ciertos parámetros.

Entre usar jsp o servlet para poner/recoger los datos de un bean posiblemente no hay mucha diferencia.

¿Cuando usar servlet o jsp?. La verdad es que no lo sé, pero supongo que la idea sería usar jsp cuando hay poco código java que hacer. Ten en cuenta que el código java iría insertado en la página jsp y si haces mucho código ahí puede ser inmanejable.

Los Servlet imagino que son mejor cuando para conseguir la página visible al usuario hay mucho código java que ejecutar por detrás. De todas formas, esto es sólo mi impresión, ya que no suelo trabajar con jsp ni servlet.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #16 (permalink)  
Antiguo 11/05/2007, 07:20
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

Muchas gracias, me ha quedado mucho más claro.

chuidiang, trabajas con algún framework?

saludos.
  #17 (permalink)  
Antiguo 11/05/2007, 12:36
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: problema al compilar classes

Hola:

Ni siquiera trabajo con jsp ni servlet ni ejbs...
Lo mio son las interfaces gráficas de usuario con SWING.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #18 (permalink)  
Antiguo 11/05/2007, 16:22
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: problema al compilar classes

perfecto, bueno chuidiang, muchas gracias por todo, tus respuestas me han ayudado mucho.

saludos.
  #19 (permalink)  
Antiguo 22/07/2010, 16:13
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Por si alguien lo leeeee

Tengo una duda, yo estoy trabajando en un proyecto creado en java y flash builder 4 en java tengo una clase la cual recibe un String que es enviado desde flashbuider con esta cadena de String yo creo una clase llamada Algo.java; esta clase tiene el metodo main(String args[]) y queda ok.

Mi problema es el siguiente, yo estoy creando esta clase en la siguiente ruta:
C:\Archivos de programa\java\jdk1.6.0_16\bin y cuando la ejecuto por linea de comandos funciona sin problema compila y me crea el .Class al igual tambien cree el set CLASSPATH= pero cuando ejecuto desde mi proyecto en java esa linea de comandos a pesar que no me devuelve ningún error tampoco me hace nada...es decir no crea el .Class....

El codigo que tengo en mi proyecto para ejecutar dicha clase es el siguiente
Process prc;
prc = Runtime.getRuntime().exec("cmd C:\\Archivos de programa\\java\\jdk1.6.0_16\\bin");
prc = Runtime.getRuntime().exec("javac Algo.java");
prc = Runtime.getRuntime().exec("java Algo");

se supone que debería funcionar pero noooooo que sera lo que puede pasar??...si alguien tiene alguna respuesta por favor ayudeme estoy necesitando eso con urgencia o si saben de otro metodo para compilar y ejecutar una clase que yo mismo cree diganmelo aclaro que esto debe ser ejecutado desde un proyecto ya creado en java....Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:14.