首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >环境变量CLASSPATH <> Clojure的CLASSPATH。为什么?

环境变量CLASSPATH <> Clojure的CLASSPATH。为什么?
EN

Stack Overflow用户
提问于 2010-09-03 21:44:07
回答 3查看 1.5K关注 0票数 6

这里我检查环境变量CLASSPATH

daniel@daniel-laptop:~/ps/clojure/projects/ring-tutorial$回波$CLASSPATH

/home/daniel/ps/clojure/projects/ring-tutorial/src

这里我检查一下java认为它是什么.

daniel@daniel-laptop:~/ps/clojure/projects/ring-tutorial$ lein repl

user=> (System/getProperty "java.class.path")

"src/:classes/:/home/daniel/.m2/repository/leiningen/leiningen/1.1.0/leiningen-1.1.0-standalone.jar:lib/clojure-1.1.0.jar:lib/servlet-api-2.5-6.1.14.jar:lib/commons-io-1.4.jar:lib/clj-stacktrace-0.1.0.jar:lib/clojure-contrib-1.1.0.jar:lib/ring-devel-0.2.0.jar:lib/jetty-util-6.1.14.jar:lib/clj-html-0.1.0.jar:lib/ring-jetty-adapter-0.2.0.jar:lib/jetty-6.1.14.jar:lib/ring-core-0.2.0.jar:lib/commons-fileupload-1.2.1.jar:lib/ring-servlet-0.2.0.jar:lib/commons-codec-1.4.jar:“

,正如您所看到的,这两个响应完全不同。我很肯定,我一定是误会了,我应该编辑CLASSPATH变量,以便让java“得到它”,但我发现的所有东西都说这应该能工作。那是怎么回事?leiningen是否产生了自己奇怪的clojure叛逆实例?我在编辑一个完全无关的变量吗?任何帮助都非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-03 21:58:39

在这里,$CLASSPATH确实是完全无关的。如果命令行上没有向它提供类路径信息,java- JVM启动程序将使用它;Leiningen为JVM提供一个适合于您正在处理的任何项目的类路径。

在这种特殊情况下,"/home/.../ring-tutorial/src"将不是环形教程中非常有用的类路径,因为它只包含环形教程的源代码,而不包括Clojure jar (这是运行Clojure代码所必需的)、环形jar (Ring是一个多模块项目)或任何其他jars所依赖的。Leiningen产生的类路径看起来可能很长,但是它的所有组件都需要存在。

顺便说一句,如果您刚开始使用Clojure,我建议您尽可能坚持使用工具链的类路径管理工具(这可能意味着Emacs + lein swank或某些IDE + Clojure插件)。否则,这里有很多关于Clojure类路径问题的问题,还有许多关于这个主题的其他资源,您可以在google上搜索.但是现在工具支持非常强大,而且通常不需要手动触摸类路径,这只是在一开始最好避免的痛苦。

票数 9
EN

Stack Overflow用户

发布于 2010-09-03 22:19:58

使用CLASSPATH变量来管理依赖项的问题是,所有Java和其他JVM语言都需要对其进行操作。过不了多久,你就把自己画在墙角了。

当您启动只启动服务器的服务器时,它是可以工作的。它在Java开发人员的PC上完全崩溃,Java开发人员有10个程序和项目都需要不同的依赖项,然后花费更多的时间调试bash脚本来操作编写源代码的CLASSPATH变量。

因此,这种管理类路径的方法已经不再使用,更倾向于其他类加载技术,或者在使用CLASSPATH时,只在本地使用它。

票数 2
EN

Stack Overflow用户

发布于 2010-09-04 00:43:32

Clojure类路径是Java类路径。

当使用$CLASSPATH参数调用java可执行文件时,-cp会被忽略,Leiningen (和大多数其他-cp构建脚本)都是这样做的。

如果使用像Leiningen这样的构建工具,则必须使用它来管理类路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3639747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档