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