没有指定classpath时默认的类路径是什么?
想知道什么是未指定classpath选项时的默认类路径?
当前工作目录( .
)。
来自The Java™教程:PATH和CLASSPATH :
类路径的默认值是“。” ,意味着只搜索当前目录。 指定CLASSPATH变量或-cp命令行开关会覆盖此值。
这包括子目录吗?
不,类路径中没有条目是“递归的”。 您必须明确列出每个子目录(或jar)。 但是,如果您有一个表示类pkg.subpkg.Example
的Example.class
文件,并且使用了默认的类路径,则此文件应该位于./pkg/subpkg/Example.class
。
如果java
尝试解析pkg.subpkg.Example
,它将查找每个类路径条目的/pkg/subpkg
。 即你不必列出.
,仅限类路径中的, pkg
和pkg/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命令行选项会覆盖该缺省值,因此如果要在搜索路径中包含当前目录,则必须包含“。”。 在新设置中。 官方手册