没有指定classpath时默认的类路径是什么?

想知道什么是未指定classpath选项时的默认类路径?

当前工作目录( . )。

来自The Java™教程:PATH和CLASSPATH :

类路径默认值是“。” ,意味着只搜索当前目录。 指定CLASSPATH变量或-cp命令行开关会覆盖此值。

这包括子目录吗?

不,类路径中没有条目是“递归的”。 您必须明确列出每个子目录(或jar)。 但是,如果您有一个表示类pkg.subpkg.ExampleExample.class文件,并且使用了默认的类路径,则此文件应该位于./pkg/subpkg/Example.class

如果java尝试解析pkg.subpkg.Example ,它将查找每个类路径条目的/pkg/subpkg 。 即你不必列出. ,仅限类路径中的, pkgpkg/subpkg .

我认为人们在字面上回答这个人的问题。 是的,CLASSPATH默认为“。”,但是即使您没有设置CLASSPATH或使用-classpath命令行参数,也会有一堆类自动加载。

以下是了解此过程的好地方:

http://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html

它是当前的工作目录“。”

你也可以看看自己

 class CheckClassPath{ public static void main(String args[]){ System.out.println(System.getProperty("java.class.path")); } } 

默认类路径是当前目录。 设置CLASSPATH变量或使用-classpath命令行选项会覆盖该缺省值,因此如果要在搜索路径中包含当前目录,则必须包含“。”。 在新设置中。 官方手册