Estoy usando Eclipse y no he usado Java por algún tiempo. Sin embargo, puedo compilar mi código en la línea de comandos sin problemas y generar los .class
archivos necesarios . En Eclipse, se queja de eso The declared package "Devices" does not match the expected package ""
. ¿Qué significa esto y cómo puedo solucionarlo?
Código de muestra:
package Devices;
public final class DevFrequency
{
public short messageID;
public double frequency;
public short converterID;
public DevFrequency()
{
}
public DevFrequency(short _messageID,double _frequency,short _converterID)
{
messageID = _messageID;
frequency = _frequency;
converterID = _converterID;
}
}
El nombre de mi proyecto es DeviceDDS
.
/src/Converters
directorio?Respuestas:
Eclipse espera que el paquete declarado coincida con la jerarquía de directorios, por lo que espera que su archivo Java esté en un directorio llamado "Dispositivos" en la raíz de su fuente. Por el momento, parece que el archivo está directamente en la raíz de su fuente. Así que cree el directorio apropiado y mueva el archivo allí.
Tenga en cuenta que, convencionalmente, los paquetes están en minúsculas e incluyen el nombre de su organización en orden DNS inverso, p. Ej.
fuente
Intente cerrar y volver a abrir el archivo.
Es posible obtener este error en eclipse cuando no hay absolutamente nada de malo con la ubicación del archivo o la declaración del paquete. Pruébelo antes de pasar mucho tiempo probando estas otras soluciones. A veces, el eclipse simplemente se confunde. Me ha funcionado en varias ocasiones. Le doy el crédito a la idea de Joshua Goldberg .
fuente
Solución 1: Una solución que funcionó para mí cuando se produjo este error " El paquete declarado no coincide con el paquete esperado " para un proyecto que verifiqué en eclipse CVS:
1.Haga clic derecho en el proyecto en la barra de navegación y haga clic en 'eliminar'
2.Asegúrese de que la opción ' Eliminar el contenido del proyecto en el disco ' NO esté marcada y haga clic en Aceptar.
3. Ahora, después de eliminar el proyecto, vaya a Archivo -> Importar -> General -> Proyectos existentes en el espacio de trabajo
4. Seleccione su espacio de trabajo en la lista del directorio y marque la casilla junto al nombre de su proyecto. Haga clic en ' Finalizar '
Solución 2: una vez más recibí este error con el siguiente mensaje
Errores de compilación de Eclipse: java.lang.Object no se puede resolver Tuve que seguir otra ruta mencionada aquí y el error desapareció.
Mientras tanto, la solución consiste en eliminar la biblioteca del sistema JRE del proyecto y luego volver a agregarla. Estos son los pasos:
Ojalá se resuelva el error ...
fuente
Resolví el problema siguiendo estos pasos:
Seleccione el proyecto - Haga clic con el botón derecho - ruta de compilación java.
En la pestaña de fuente, cambia
src
asrc/main/java
.Eclipse reordenará todo el proyecto.
fuente
Tuve este problema: las otras clases dentro de mi paquete estaban bien, pero una clase tenía el error en su contra. No hubo nada de malo en la declaración del paquete.
Lo arreglé haciéndolo
refactor->move
y moví la clase a otro paquete temporalmente, luego derefactor->move
vuelta al paquete original.fuente
Necesitas tener la clase dentro de una carpeta
Devices
.fuente
Cree un nuevo paquete en su proyecto llamado "Dispositivos" y coloque su clase en él. Esto es equivalente a colocar la clase en un directorio llamado "Dispositivos" en la carpeta de origen de su proyecto.
fuente
Asegúrese de que
Devices
esté definido como carpeta de origen en las propiedades del proyecto.fuente
Recibí el mismo tipo de error, pero mi paquete era absolutamente correcto. Cuando acabo de cerrar y abrir mi editor, el error desaparece. Espero que esto pueda ayudar en algunos escenarios.
fuente
Solucioné esto eliminando un atributo "excluyente" para ese paquete en mi
.classpath
archivo. Elimine el atributo, no toda la etiqueta, o "src / java" dejará de ser una carpeta de origen.<classpathentry excluding="com/myproject/mypackage/mysubpackage/" kind="src" path="src/java"/>
fuente
Este problema se resolvió al mencionar el nombre del paquete.
Moví mi archivo Test_Steps.java que estaba en el paquete stepDefinition
con solo agregar el paso del paquete Definición, el problema se resolvió
Entonces, este problema puede ocurrir cuando tiene un paquete y no lo está usando en su archivo de clase.
Agregarlo resolvió el problema y el error ya no aparecía.
fuente
Asegúrese de haber creado un paquete correcto. Es posible que tenga la oportunidad de crear una carpeta en lugar de un paquete.
fuente
Cree el directorio [your.project.name] en el directorio raíz del espacio de trabajo de su proyecto.
Copie * .java de "src" a ese directorio.
Cierre y vuelva a abrir el proyecto.
fuente
Esto me sucedió cuando estaba revisando un proyecto de un repositorio svn en eclipse. Había archivos jar en mi carpeta .m2 que Eclipse no estaba mirando. Para solucionar el problema que hice:
haga clic con el botón derecho en la carpeta del proyecto Configurar> Convertir a proyecto Maven
y eso resolvió el problema.
fuente
Hay un millón de respuestas, pero aquí hay otra: copie los archivos en un nuevo paquete, elimine el paquete anterior y cambie el nombre del nuevo paquete al nombre del paquete anterior.
fuente
Asegúrese de no utilizar el paquete predeterminado. Cree un nuevo paquete con el nombre 'dispositivos' y copie este código dentro de él y use.
fuente
Tuve este tipo de situaciones cuando copié clases de otros paquetes / proyectos.
Menú-> Proyecto-> Limpiar normalmente ayuda.
fuente
En mi caso, seleccioné el marcador de error en la pestaña Problemas y lo eliminé ya que el método principal del archivo de Java se estaba ejecutando correctamente. Esa es una falla en Eclipse Neon con la multitud de complementos que ha instalado.
fuente
También enfrenté este problema cuando importé un proyecto existente para eclipse. Era un proyecto de Gradle, pero mientras lo importaba, lo importé como proyecto normal haciendo clic en General-> Proyectos existentes en el espacio de trabajo. Para resolver el problema, agregué la naturaleza de Gradle al proyecto mediante :::: Haga clic con el botón derecho en la carpeta Proyecto -> Configurar-> Agregar naturaleza de Gradle
fuente
Estaba usando Spring Tool Suite 4. No pude resolver el problema. La estructura del directorio estaba de acuerdo con el nombre del paquete.
fuente
Tuve el mismo problema con un proyecto maven en Eclipse IDE. Pude resolverlo reemplazando el archivo .classpath con el formato correcto. Después de reemplazarlo, cierre y abra el proyecto.
Ejemplo de archivo .classpath
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/webapp"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="src" output="target/test-classes" path="src/test/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> <attribute name="test" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="output" path="target/classes"/> </classpath>
fuente