CLASSPATH 变量是隐含的吗?

Is CLASSPATH variable implicit?

是否必须在命令行中添加类路径变量。 例如

java -cp $CLASSPATH MyClass

我知道如果类路径存储在某个不同的变量中是强制性的,但是由于 CLASSPATH(变量)是 Java 虚拟机中的一个参数,是否必须将其显式添加到命令行? 我面临一个问题,如果我不将 CLASSPATH 变量添加到命令行,我会得到 NoClassDef。

您的 CLASSPATH 变量可能包含通配符 (*)。

当你运行java -cp $CLASSPATH时,通配符会被展开,但class路径直接从环境变量中读取时不会。除了这个问题,CLASSPATH 变量被 Java 启动器自动使用。