一起编译Java类

时间:2011-04-06 19:42:39

标签: java compilation

我认为我是新手,但是当我在一个单独的文件中创建一个对象时,它只会编译该类在同一目录中定义,或者是否从库中导入它。我假设它使用类路径来搜索包含的类文件,但是当我将一个随机目录添加到类路径(并且只将那个文件放在那里)时,它仍然抱怨该类未定义且不会编译。在编译时查找类知道在哪里?

实施例

public class SomeClass {

public SomeOtherClass SoC; // If this class is not in library or same directory -- won't compile.

}

2 个答案:

答案 0 :(得分:0)

// If this class is not in library or same directory -- won't compile

正确。您的类需要位于类路径中,或者位于您指定的.jar中。

编译时,您将使用

javac -classpath .:/some/other:/another:/some/foo.jar

然后{。{1}} .java文件(您的代码)中需要的任何内容

答案 1 :(得分:0)

除了导入之外,你还必须在类路径上有代表类'package。

的文件夹

示例:

班级com.whatever.SomeClass位于src/java/com/whatever/SomeClass.class。 现在,类路径应包含src/java/,然后从中查找包com.whatever

如果类在.jar文件中,则将jar放在类路径中。在.jar里面你再次拥有com/whatever/SomeClass.class(注意.jar基本上是一种类似zip的格式)。