Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 如何获取项目根目录?_Clojure - Fatal编程技术网

Clojure 如何获取项目根目录?

Clojure 如何获取项目根目录?,clojure,Clojure,例如,如果我的项目目录是/media/code/clojure/my project/,并且我有一个文件/media/code/clojure/my project/src/foo.clj,我如何从foo.clj中获取“/media/code/clojure/my project/”?不幸的是,这是不可能的,因为“项目根”的概念在Java包模型中没有很好地定义。“这个项目的源代码的根”是一个概念,但是一旦/如果它被编译成一个jar文件,这个概念就不再适用了,jar文件可以从系统的任何地方加载,并

例如,如果我的项目目录是
/media/code/clojure/my project/
,并且我有一个文件
/media/code/clojure/my project/src/foo.clj
,我如何从
foo.clj
中获取
“/media/code/clojure/my project/”

不幸的是,这是不可能的,因为“项目根”的概念在Java包模型中没有很好地定义。“这个项目的源代码的根”是一个概念,但是一旦/如果它被编译成一个jar文件,这个概念就不再适用了,jar文件可以从系统的任何地方加载,并且这个位置几乎总是(在分布式软件的情况下)一个系统包安装目录。这是一个不适合下载文件的地方

你的问题不清楚。@Chiron编辑帮助了吗?事实是没有“项目根”。代码来自(类)路径,但没有代表“根”的单一目录。您想解决什么任务?@ffriend定义文件上载目录。这是一个很好的例子,我用了一种完全错误的方式。我总是使用
/tmp
(或Windows上相应的用户目录)来处理这些事情,因为它保证存在并具有写入权限。如果您真的希望它位于代码附近的某个地方,您可以使用一个路径定义某个特定的模块/类,该路径是固定的w.r.t.您的“根”。例如,您可以在
root/src/Main.java
中使用class
Main
,按照描述获取它的路径,然后只需升级1级即可。