在包中扩展

Extending in a package

在文件夹 .....\testPackage 我有一个文件 Test.java:

package testPackage;
public class Test {}

和另一个文件 OtherTest.java:

package testPackage;
public class OtherTest extends Test {}

第二个文件无法编译,因为它找不到 class Test。我做错了什么?

编辑:

path\testPackage>javac Test.java

path\testPackage>java Test
Error: Could not find or load main class Test

path\testPackage>javac OtherTest.java
OtherTest.java:2: error: cannot find symbol
public class OtherTest extends Test {}
                               ^
  symbol: class Test
1 error

奇怪的是,当我在 TextPad 中 运行 Test 时,我没有得到 Error: Could not find or load main class Test(我知道,多么原始的权利),但我确实得到 Error: Could not find or load main class Test 的编译错误=19=].

编辑 2:主要问题已经解决,但万一有人想知道,java Test 不起作用的原因是因为它应该是 java testPackage.Test,并且在父文件夹中testPackage.

您的问题是包装问题。你是 运行 javac 来自 testPackage 目录,所以你的类路径实际上应该在下面的目录中。这里有两种编译方式(假设你已经编译了Test.java):

path\testPackage>javac -classpath ".." OtherTest.java

path>javac testPackage\OtherTest.java

有关更多详细信息,这是一篇关于类路径的好文章:http://kevinboone.net/classpath.html