2
我做了两个文件,一个非常简单的Java例子:编译应用程序后无法找到主类
Dog.java包含:
package com.greg.dog;
public class Dog {
public void bark() {
System.out.println("bark");
}
}
TestDog.java包含:
package com.greg.dog;
public class TestDog {
public static void main(String args[]) {
Dog d = new Dog();
d.bark();
}
}
我把这两个文件放在〜/ 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
我在Ubuntu上,这里的所有Java信息:
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.
感谢。编译都从该目录工作,但是当我去运行它时,我得到一个类未找到错误。查看更新。 – Greg 2011-01-24 03:40:10