2011-05-11 16 views
6

Tengo dos archivos de Java (+ A.java B.java) en src/com/example¿Cómo acceder a las clases de Java en el mismo paquete

A.java

package com.example; 

public class A { 
    public void sayHello(){ 
     System.out.println("Hello"); 
    } 
} 

B.java

package com.example; 

public class B{ 
    public static void main(String... args) { 
     A a = new A(); 
     a.sayHello(); 
    } 
} 

Si cd a un nivel por encima src y tipo de clases javac -d src/com/example/B.java

me sale un error diciendo que no puede encontrar el símbolo a?

Respuesta

1

Eso es porque Java no sabe dónde encontrar el origen del otro archivo. Necesita cd en el directorio src o especificar el directorio src en el -sourcepath.

5

javac no sabe dónde encontrar la clase fuente, tiene que especificarla con la opción -sourcepath.

Ver:

C:\example>mkdir src 
C:\example>type > src/ 
C:\example>mkdir src\com\example 
C:\example>more > src\com\example\A.java 
package com.example; 
public class A { 
} 
^C 
C:\example>more > src\com\example\B.java 
package com.example; 
public class B { 
    A a; 
} 
^C 
C:\example>javac -d 
C:\example>mkdir classes 
C:\example>javac -d classes src\com\example\B.java 
src\com\example\B.java:3: cannot find symbol 
symbol : class A 
location: class com.example.B 
     A a; 
     ^
1 error 
C:\example>javac -d classes -sourcepath src src\com\example\B.java 
C:\example> 
0

Try javac -d clases src/com/example/* java

.
Cuestiones relacionadas