向类路径中添加文件夹是否会添加子文件夹?

向类路径中添加文件夹是否会添加子文件夹?

我正在脚本中执行此操作:

if [ -d $SERVICE_HOME/../config ]; then
  CLASSPATH="$SERVICE_HOME/../config:$CLASSPATH"
fi

并且 /config 文件夹中也有子文件夹,子文件夹中的文件会被添加到类路径中吗?

答案1

答案取决于文件夹的内容。

文件夹中的类文件

文件夹下的层次结构与类的包结构一一映射。

例如,该文件./org/example/MyClass.class将用于该课程org.example.MyClass

文件夹中的 jar 文件

这些文件将被忽略,因为必须将 jar 文件明确添加到类路径中。

例如CLASSPATH=${CLASSPATH}:${SERVICE_HOME}/mylib.jar

一些笔记

  • 类路径应该通常情况下仅附加。通过在开头添加元素,您可能会偶然覆盖另一个类。
  • 在 bash 中你也可以使用这个较短的结构来附加:
    CLASSPATH+="$SERVICE_HOME/../config"

相关内容