类路径通常很长,必须传递给Java进程。您可以选择将其传递到命令行(但许多系统有进程行长度限制),或者您可以将类路径写入一个文件,并通过这种方式传递。Clojure CLI执行后者,但这要求在某个地方写入一个文件。文件可以写入多个位置,并且需要逻辑来检测正确写入的位置。如果系统报告可以写入但不能写入,或者无法写入,我并不知道CLI将如何处理这种情况(它似乎会影响到下载Maven库、下载git库、准备git库以及其他CLI/tools.deps的许多功能)。
尝试写入文件以检查它们是否可以写入不会成功,因为我们使用文件的存在来检测缓存文件是否存在。添加更多的环境变量不受欢迎——已经有太多的配置选项,并且在某些情况下,此逻辑存在于多个位置(bash和tools.deps clojure),需要保持同步,并且所有读取/写入缓存代码必须达成一致。所有这些选项都有不同程度的弊端。