2011-01-24 4 views
2

나는 두 개의 파일로 정말 간단한 자바 예제를 만들어 찾는데 실패 ~/Desktop/test/src/com/greg/dog 위치에이 두 파일이 있습니다.메인 클래스가

내가 그들을 컴파일하면 Dog.java가 컴파일됩니다. 미세이야,하지만 TestDog.java 내 개 클래스를 찾을 수 없습니다 : 나는 우분투에있어

[email protected]:~/Desktop/test/src/com/greg/dog$ javac Dog.java 
[email protected]:~/Desktop/test/src/com/greg/dog$ javac TestDog.java 
TestDog.java:6: cannot find symbol 
symbol : class Dog 
location: class com.greg.dog.TestDog 
     Dog d = new Dog(); 
     ^
TestDog.java:6: cannot find symbol 
symbol : class Dog 
location: class com.greg.dog.TestDog 
     Dog d = new Dog(); 
        ^
2 errors 

을, 여기에 모든 자바 정보입니다 : 내가 잘못 일을 할 수 있는지

java version "1.6.0_0" 
IcedTea6 1.3.1 (6b12-0ubuntu6.7) Runtime Environment (build 1.6.0_0-b12) 
OpenJDK 64-Bit Server VM (build 1.6.0_0-b12, mixed mode) 

어떤 아이디어? Dog.java를 가져와야합니까? 패키지를 잘못하고 있습니까?

업데이트

당 익명의 제안, 나는 src 디렉토리로 디렉토리를 변경하고 모든 컴파일합니다. 내가 TestDog.java을 실행으로 이동 그러나 때이 오류가 발생합니다 :

[email protected]:~/Desktop/test/src$ java com/greg/dog/TestDog.java 
Exception in thread "main" java.lang.NoClassDefFoundError: com/greg/dog/TestDog/java 
Caused by: java.lang.ClassNotFoundException: com.greg.dog.TestDog.java 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332) 
Could not find the main class: com/greg/dog/TestDog.java. Program will exit. 

답변

9

자바 컴파일러는 다른 클래스는 컴파일러가에서 호출되는 경우에 패키지 - 해당 디렉토리 상대에있을 것으로 예상하고있다.

[email protected]:~/Desktop/test/src$ javac com/greg/dog/Dog.java 
[email protected]:~/Desktop/test/src$ javac com/greg/dog/TestDog.java 
+0

감사 :

당신은 같은 것을 사용하여 컴파일해야 할 것이다. 둘 다 컴파일하면 그 디렉토리에서 작동하지만, 나는 그것을 실행하기 위해 갈 때 클래스를 찾지 못한다. 업데이트를 참조하십시오. – Greg

+1

@Greg : 시작할 때'.java' 확장자를 원하지 않습니다.'java com/greg/dog/TestDog'을 시도하십시오. –

+0

완벽한! 감사! – Greg

관련 문제