我死都看不懂classpath是什么意思

9
请用10岁孩子听得懂的语言解释什么是classpath。 当我使用javac编译程序时,通常会进入主类所在的根文件夹:
javac Test.java

它会编译程序和所有子目录中的类。对于上面的例子:

C:\newApp\ ---> 这是主类(Test.java)所在的文件夹。

C:\newApp\com\example\class ---> 这是其他一些类所在的文件夹。

javac使用单个命令编译所有Java文件。为它们制作.class文件。

现在我只需要运行应用程序:

java Test

什么是类路径?在这种情况下,类路径到底是什么?我应该知道哪些关于类路径的信息?在使用IDE时,我需要设置它吗?


当使用IDE(如Eclipse或IntelliJ)时,您不需要了解类路径,因为它会自动完成。 - vvvsg
@vvvsg 我正在使用Eclipse,但是类路径总是让我很烦恼。我无法运行任何东西。总是出现“没有主类型”的错误。 - brienna
2个回答

11
假设您的命令提示符当前目录是C:\newApp,并且一个名为Test的类存在于C:\newApp\Test.java中。
类路径(classpath)是指程序可能需要使用的类文件所在的位置或一组位置。类路径包括文件夹、JAR 文件以及其他源代码。
当 Java 需要加载类时,它会查找类路径。默认的类路径是包含 Java 内置类的 JAR 文件集和您 shell 提示符的当前目录(在本例中为C:\newApp)。
当您尝试加载类时(例如com.example.MyClass),Java 会在您的类路径中寻找该类,即在C:\newApp\com\example\MyClass.class位置。如果您想从 JAR 文件中获取类,则可以将该 JAR 文件放置在类路径上。Java 将从该 JAR 文件中查找类,并在需要时进行解压缩。
使用 IDE 时,通常不需要担心类路径。IDE 在运行时会自动将您的代码放入类路径中。如果您想使用来自外部库的代码,只需告诉 IDE 将其添加到项目中(通常是将其放入项目文件夹并在文件列表中右键单击它)。然后,IDE 将知道自动完成功能应包括该 JAR 中可用的类,并且该 JAR 在运行项目时应放置在类路径上。

3

类路径通常是一个路径列表,进程在其中查找资源(可以是类、可执行文件、XML文件或其他任何内容)。当您使用像Eclipse这样的IDE时,只要包含了IDE本身的所有内容(例如:添加外部jar交互),类路径通常会为您设置。

来自Oracle的信息:

类路径是Java运行时环境搜索类和其他资源文件的路径。可以使用调用JDK工具时的-classpath选项(首选方法)或设置CLASSPATH环境变量来设置类搜索路径(更常见的称为更短的名称“类路径”)。首选-classpath选项,因为您可以为每个应用程序单独设置它,而不影响其他应用程序并且不会被其他应用程序修改其值。

以下是设置多个文件夹在类路径中以在目录C:\java\MyClasses中查找类文件以及C:\java\OtherClasses中的类的链接示例:

C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接