test not example could java compilation classpath javac symbol

not - javac install



Error "No se puede encontrar el símbolo", incluso en un ejemplo ridículamente simple (3)

Hice exactamente lo que hiciste

$ ls -la test/ drwxr-xr-x 6 amirraminfar staff 204 Jul 21 10:24 . drwxr-xr-x 3 amirraminfar staff 102 Jul 21 10:23 .. -rw-r--r-- 1 amirraminfar staff 148 Jul 21 10:24 Test.java -rw-r--r-- 1 amirraminfar staff 140 Jul 21 10:24 testClass.java

Entonces compilado

$ javac test/*

Luego lo ejecutó. Y todo funcionó. Entonces, esto me dice que el problema es la forma en que está compilando. ¿Has intentado compilar ambas clases juntas?

$ java test.Test

Editar - Puse todos mis archivos en test/ directorio como dijo Jon Skeet. Tal vez eso es lo que es diferente.

Así que he estado tratando de resolver este problema por unas horas ahora. Recorrí internet, revisé StackOverflow, les pregunté a algunos compañeros de trabajo (soy pasante) y, sinceramente, ¡nadie me puede decir lo que está pasando! Puse un ejemplo muy simple para mostrarte lo que estoy haciendo (y me sale el error incluso con el ejemplo simple)

Tengo dos archivos .java . Uno es Test.java el otro es testClass.java .

//testClass.java package test; public class testClass { private int someMember=0; public testClass(){ //kill me now } }

Luego tengo mi archivo Test.java que contiene mi método principal. (Aunque en mi problema real no tengo un método principal, es un servlet con un método doGet() )

//Test.java package test; public class Test { public static void main(String[] args) { testClass myTest = new testClass(); } }

Estoy compilando con lo siguiente (desde la línea de comandos de Windows, con el directorio actual donde guardé mis archivos .java):

..java bin location../javac testClass.java

Esto funciona absolutamente bien y obtengo un archivo testClass.class en el directorio actual. Yo, entonces, trato de compilar el archivo Test.java con lo siguiente (nuevamente dentro del directorio de trabajo):

..java bin location../javac -classpath . Test.java

Esto produce el siguiente error:

Test.java:6: cannot find symbol symbol : class testClass location : class test.testClass testClass myTest = new testClass();

¿Puedes ayudar a un hermano a salir? :(


La solución más fácil: .java una test directorio y coloca tus .java allí, agrega la carpeta que contiene tu carpeta de test en la ruta de clases. Si no sabes cómo hacerlo, simplemente coloca tu carpeta de test en la subcarpeta lib la carpeta java (por ejemplo, c: / prog / javasdk / lib). Simplemente compile con javac Test.java (testClass se compilará automáticamente), ejecútelo con java test.Test from anywhere.


Sus clases están en un paquete, y Java buscará clases asumiendo esa estructura de paquete, pero javac no construirá esa estructura para usted a menos que usted se lo indique; normalmente colocará el archivo de clase junto con el archivo Java.

Opciones:

  • Coloque los archivos de origen en el directorio de test y compile test/Test.java y test/testClass.java
  • Especifique -d . cuando compile, forzar a javac a construir una estructura de paquete.

El uso de un IDE (Eclipse, IntelliJ, etc.) tiende a alentarlo o incluso obligarlo a colocar los archivos en el directorio correcto, y generalmente también hace que el código de construcción sea más fácil.