Problemas de compilado con clases, package ...

chuidiang
17 de Octubre del 2003
Hola:

Tengo una clase A que pertenece a un package y una clase B que no pertenece a ningun package.

No encuentro la forma de usar la clase B desde la clase A, no hay manera de que compile por mas que he probado a poner import o cambiar el classpath.

En A.java tengo

package PAQUETE_A;
public class A
{
B b;
};

y en B.java tengo

public class B
{
int c;
};

¿Alguien sabe una forma de hacer que esto compile?

Sed buenos.

jamecaes
17 de Octubre del 2003
La respuesta.....
Importar la clase....

package x;
import B;
public class A
{
B b;
};


Que me gane???
no mentiras fue un gusto

sturner
17 de Octubre del 2003
Eso no funciona,
el error es en tiempo de compilación

A.java:2: '.' expected
import B;
^
1 error




chuidiang
17 de Octubre del 2003
Gracias por las respuestas.

Mi problema es que la clase A en realidad son varios cientos de clases de un proyecto. Todas ellas llevan algún package de un tipo u otro.

La clase B son otros cientos de clases de otro proyecto. Ninguna lleva package.

Quiero usar clases del proyecto B desde el proyecto A (al revés no tengo problemas). No puedo dedicarme a poner cientos de package en el proyecto B.

Lo de import B; ya lo había probado y no compila, dice que no existe el paquete B (cosa que es cierta, porque es una clase).

Sed buenos.

jamecaes
17 de Octubre del 2003
haber que sucede...
implemente el ejercicio de prueba que colocaste y compilo perfectamente....
ahora, cuando se empaqueta una clase, esta por defecto puede invocar las clases que estan en el mismo paquete. Pero cuando la clase que voy a utilizar no esta en el mismo paquete, siempre se debe importar y la clase B no esta en el paquete, asi que toca importar....

Y como digo, implemente el ejercicio y compilo perfectamente, pero si sale error cuando quiero tomar todas las clases de la raiz "import *;"

Espero haber sido de ayuda!!!

Mar
17 de Octubre del 2003
Vaya! Con las cosas tan dificiles que respondes no imaginaba que tu pudieras tener dudas! ; )

Pues yo creo que si pones la clase B dentro del fichero A.java te va a funcionar...pero igual es una gilipollez...

Antonio
17 de Octubre del 2003
Pues yo también lo quiero saber. Si por ejemplo tengo el CLASSPATH apuntando a la carpeta C:Ejercicio y dentro de esa carpeta tengo la clase B y la subcarpeta PAQUETE_A que contiene a la clase A. ¿Cómo hago para que A compile?

Clase A:
package PAQUETE_A;

public class A{
B b;
}


Clase B:
public class B{
int c;
}


A ver, quien lo compila sin meter B.java en la carpeta de A.java

sturner
17 de Octubre del 2003
"A ver, quien lo compila sin meter B.java en la carpeta de A.java"
eso no suena bonito.


cualquiera que lo ve diría que es un problema, pero no
eso es una ventaja.

La solución al porque mejor búscala,
caso contrario me cansaría de escribir.

pero si te voy a decir la solución:

la clase B

==================================
package packb;

public class B{
int algo;
}

// guardarlo en un directorio packb
// javac B.java
// cd ..
// jar cvf pack.jar packb

==================================
package PAQUETE_A;
import packb.B;

public class A{
B b;
}
// set classpath=%CLASSPATH%;ALGUN_PATHpack.jar;
// javac A.java
==================================

y ya se compila tuanis, pero se necesita
que la clase B esté en un paquete