/ / Acceder a archivos en paquetes separados en Java - Java, importar

Acceda a archivos en paquetes separados en Java - java, import

Tengo problemas para acceder a un par de clases en carpetas separadas para un proyecto que tengo en la escuela. Estoy usando Geany, y necesito poder tener estas clases para hablar, por así decirlo.

Hay una carpeta principal en la que todos los paquetes separados están contenidos como sus propias carpetas, y dentro de cada carpeta hay todas las clases específicas de ese paquete.

En mi caso, necesito poder tener algunas de las clases en un paquete gameObjects para usar en un paquete de componentes. Lo intenté

import gameObjects.Room;
import gameObjects.Entity;

pero me sale este error de compilación:

Position.java:3: error: package gameObjects does not exist

¿Hay alguna manera de hacer que estas clases hablen entre ellas? Gracias por adelantado.

EDITAR: La ruta del directorio se ve así:

C:UsersmattDesktopNew folderProject

y en esa carpeta de Proyecto hay varias carpetas donde están contenidas clases separadas. Necesito poder tener dos clases que se comuniquen entre sí desde diferentes carpetas dentro de mi carpeta de Proyecto.

Estoy compilando asi

C:UsersmattDesktopNew folderProjectcomponents>javac Position.java

EDIT # 2: Las clases Room y Entity están contenidas en una carpeta / paquete llamado gameObjects, y contienen, junto con todas las demás clases en esa carpeta

package gameObjects;

como su primera línea.

Respuestas

1 para la respuesta № 1

Tengo problemas para acceder a un par de clases en carpetas separadas para un proyecto

Las carpetas son básicamente paquetes. Por lo tanto, Class Room y Entity no pueden estar en carpetas diferentes porque, como usted escribió:

import gameObjects.Room;
import gameObjects.Entity;

Estas clases deben estar en la carpeta / paquete "gameObjects". Así que supongo que la estructura de tu proyecto es incorrecta. Si desea mantenerlos en diferentes carpetas, entonces tendrá un paquete diferente.

Position.java:3: error: el paquete gameObjects no existe

Coloque ambas clases en la carpeta gameObjects y luego agregue la primera línea de cada archivo "paquete gameObjects";


0 para la respuesta № 2

Poniendo .java los archivos en una carpeta separada en el explorador no significa que usted especifique alguna paquete para ellos. Para tener la capacidad de importar clases, debe asegurarse de especificar un paquete para ellos. Lo logras con poner:

package gameObjects;

línea en el comienzo de la adecuada .java expediente. Después de especificar ese paquete, puede importar las clases contenidas en ese paquete con:

import gameObjects.nameOfClass;

Tenga en cuenta que si no especifica una package al principio de .java archivo, es entonces contenido en defecto paquete (usted tiene acceso a las clases contenidas en defecto paquete solo de otras clases contenidas en defecto paquete también). No puede importar clases que no tengan package nameOfYourPackage; declaración al comienzo de .java archivo, por lo que no puede utilizarlos fuera de defecto paquete.

Tenga en cuenta que Java se encarga de poner .java archivos en carpetas específicas en su disco duro por su cuenta. Entonces, cuando especifiques que tu sample.java archivo está contenido en yourpackage, hay una carpeta llamada yourpackage creado en el directorio de su proyecto y sample.java se pone en esa carpeta.