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

时间:2011-11-22 13:34:35

标签: java

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

4 个答案:

答案 0 :(得分:36)

当前工作目录(.)。

来自The Java™ tutorials: PATH and CLASSPATH

  

类路径的默认值为“。”,表示仅搜索当前目录。指定CLASSPATH变量或-cp命令行开关会覆盖此值。

这是否包含子目录?

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

如果./pkg/subpkg/Example.class尝试解析java,则会查看每个类路径条目的pkg.subpkg.Example。即您不必在类路径中列出/pkg/subpkg.pkg,只需列出pkg/subpkg

答案 1 :(得分:16)

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

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

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

答案 2 :(得分:6)

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

你也可以自己检查一下

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

答案 3 :(得分:3)

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