🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.lenguajes.java
4 messages
4 total messages Started by GRUPOS DE JAVA Sat, 31 Mar 2007 20:55
LLAMADA A CLASE DENTRO DE PAQUETE NO FUNCIONA
#547
Author: GRUPOS DE JAVA
Date: Sat, 31 Mar 2007 20:55
57 lines
3036 bytes
HOLA AMIGOS DEL GRUPO PUES TENGO UN PROBLEMA QUE ME TIENE ATORADO EN
EL AVANCE DE MI PROYECTO ESTO ES QUE TENGO VARIAS CLASES TODAS
DEPENDEN DE UNA UNICA CLASE QUE ES UNA CONEXION A UNA BD Y LAS QUIERO
EMPAQUETAR EN UN PAQUETE X, PERO EL PROBLEMA ES QUE CUANDO QUIERO
COMPILAR UNA CLASE QUE MANDA A LLAMAR OTRA DEL MISMO PAQUETE ME MARCA
QUE NO EXISTE LA CLASE AQUI ESTA UNA PARTE DE CADA CLASE LA QUE ME
CAUSA CONFLICTO AL COMPILAR ES LA CLASE MULTIIUSOS.JAVA:
* la clase Conexion
package sacip;
import java.sql.*;
public class Conexion {
   public Conexion() {
   }
   public final static Connection getConexion
                (String URLBd, String login, String password) throws
Exception {
        try {
         Class.forName("com.mysql.jdbc.Driver").newInstance();
         return DriverManager.getConnection
                             (URLBd,login,password);
      }
      catch(Exception ex) {
          System.out.println(ex.toString());
          return null;
      }
   }
 }


* la clase Multiusos

package X;
import java.sql.*;
public class MultiUsos {
/*declaracion de variables para conexion con la BD y para usuario de
mysql.*/
    private final static String log = "log";
    private final static String pswd = "password";
    private final static String Bd = "sistema";
    private final static String URL = "jdbc:mysql://localhost:
3306/"+Bd;
    private Connection con = null;
    private ResultSet rs = null;
    private Statement stmt = null;
    private Conexion conexion = null;


EN ESTA ULTIMA LINEA ME MARCA ERROR O SEA ESTO:
cannot find symbol
private Conexion conexion = null;
Symbol: class Conexion
Location:class.sacip.Multiusos;
1 error.

todas las clases ESTAN DENTRO DE UN DIRECTORIO LLAMADO X, SE QUE DEBEN
DE IR DENTRO PERO NO SE CUAL ES LA RAZON DE QUE ME MARQUE ESO.
AGRADECERIA MUCHO SI ME AYUDAN A RESOLVER ESTA DUDA.SALUDOS.
Re: LLAMADA A CLASE DENTRO DE PAQUETE NO FUNCIONA
#549
Author: Ricardo Palomares Martinez
Date: Sat, 31 Mar 2007 21:21
90 lines
2983 bytes
GRUPOS DE JAVA escribió:
> HOLA AMIGOS DEL GRUPO


Por favor, NO GRITES. En otras palabras, no escribas todo en
mayúsculas, porque en Usenet se interpreta que estás gritando y, de
hecho, resulta muy incómodo de leer.


> PUES TENGO UN PROBLEMA QUE ME TIENE ATORADO EN
> EL AVANCE DE MI PROYECTO ESTO ES QUE TENGO VARIAS CLASES TODAS
> DEPENDEN DE UNA UNICA CLASE QUE ES UNA CONEXION A UNA BD


...que pertenece al paquete "sacip".



> Y LAS QUIERO
> EMPAQUETAR EN UN PAQUETE X, PERO EL PROBLEMA ES QUE CUANDO QUIERO
> COMPILAR UNA CLASE QUE MANDA A LLAMAR OTRA DEL MISMO PAQUETE ME MARCA
> QUE NO EXISTE LA CLASE AQUI ESTA UNA PARTE DE CADA CLASE LA QUE ME
> CAUSA CONFLICTO AL COMPILAR ES LA CLASE MULTIIUSOS.JAVA:


> * la clase Conexion
> package sacip;

Como puedes ver, la clase Conexion pertenece al paquete sacip. Su
nombre calificado es, por tanto, sacip.Conexion.


> import java.sql.*;
> public class Conexion {
>    public Conexion() {
>    }


No creo que necesites un constructor público si sólo tienes un método
estático.


> 
> 
> * la clase Multiusos
> 
> package X;
> import java.sql.*;
> public class MultiUsos {


La clase MultiUsos pertenece al paquete X, luego su nombre calificado
es X.MultiUsos.


>     private Conexion conexion = null;
> 
> 
> EN ESTA ULTIMA LINEA ME MARCA ERROR O SEA ESTO:
> cannot find symbol
> private Conexion conexion = null;
> Symbol: class Conexion
> Location:class.sacip.Multiusos;
> 1 error.


Efectivamente, necesitas importar el paquete sacip.Conexion al
principio de la clase MultiUsos:

import sacip.Conexion;

O, alternativamente, usar el nombre calificado completo siempre que te
refieras a esa clase:

  private sacip.Conexion conexion = null;


> 
> todas las clases ESTAN DENTRO DE UN DIRECTORIO LLAMADO X,


Si es así, entonces tienes que cambiar el nombre del paquete con el
que defines la clase Conexion.

Saludos.

-- 
If it's true that we are here to help others,
then what exactly are the OTHERS here for?
Re: LLAMADA A CLASE DENTRO DE PAQUETE NO FUNCIONA
#551
Author: GRUPOS DE JAVA
Date: Sat, 31 Mar 2007 23:09
45 lines
2567 bytes
ok, aqui esta lo corregido porque no lo habia puesto bien,

* Clase Conexion

package X;
import java.sql.*;
public class Conexion {
   public final static Connection getConexion
                (String URLBd, String login, String password) throws
Exception {
        try {
         Class.forName("com.mysql.jdbc.Driver").newInstance();
         return DriverManager.getConnection
                             (URLBd,login,password);
      }
      catch(Exception ex) {
          System.out.println(ex.toString());
          return null;
      }
   }
 }


* Clase MultiUsos
package X;
import java.sql.*;
import X.*;
public class MultiUsos {
/*declaracion de variables para conexion con la BD y para usuario de
mysql.*/
  private final static String log = "log";
    private final static String pswd = "password";
    private final static String Bd = "sistema";
    private final static String URL = "jdbc:mysql://localhost:
3306/"+Bd;
    private Connection con = null;
    private ResultSet rs = null;
    private Statement stmt = null;
    private Conexion conexion = null;

y tambien he probado la ultima linea como :    private X.Conexion
conexion = null;

Y ME SIGUE MARCANDO EL MISMO ERROR, SABEN PORQUE?, todas los archivos
estan en la misma carpeta llamada X.
Re: LLAMADA A CLASE DENTRO DE PAQUETE NO FUNCIONA
#554
Author: Ricardo Palomares Martinez
Date: Sun, 01 Apr 2007 12:41
53 lines
2402 bytes
GRUPOS DE JAVA escribió:
> ok, aqui esta lo corregido porque no lo habia puesto bien,
> 
> * Clase Conexion
> 
> package X;
> import java.sql.*;
> public class Conexion {
> (...)
> 
> * Clase MultiUsos
> package X;
> import java.sql.*;
> import X.*;
> public class MultiUsos {
> (...)
>     private Conexion conexion = null;
> 
> y tambien he probado la ultima linea como :    private X.Conexion
> conexion = null;
> 
> Y ME SIGUE MARCANDO EL MISMO ERROR, SABEN PORQUE?, todas los archivos
> estan en la misma carpeta llamada X.
> 


En tu primer mensaje citabas el error y era éste:


> > EN ESTA ULTIMA LINEA ME MARCA ERROR O SEA ESTO:
> > cannot find symbol
> > private Conexion conexion = null;
> > Symbol: class Conexion
> > Location:class.sacip.Multiusos;
> > 1 error.


Lo que me hace pensar que el paquete no es "sacip", como yo pensaba,
sino "class.sacip". Si lo has renombrado a X, entonces ahora será
"class.X" y la clase Conexion tendrá el nombre calificado
"class.X.Conexion".

En Java, los paquetes suelen ir *siempre* en minúsculas, así que
deberías llamarlo "x", aunque esto es sólo una cuestión de estilo.

Si con eso no te funciona, describe la estructura de directorios que
estás usando y los nombres que has puesto a cada archivo.

Saludos.

-- 
If it's true that we are here to help others,
then what exactly are the OTHERS here for?
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads