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 compiletest/Test.java
ytest/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.