Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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
如何在.jar文件中包含java内容?_Java_Clojure - Fatal编程技术网

如何在.jar文件中包含java内容?

如何在.jar文件中包含java内容?,java,clojure,Java,Clojure,好的。所以我的问题是:我正在用Clojure做一个数据解析器。我的程序的一部分是它必须能够绘制数据。我想,我会使用jFreeChart。然而,我完全不知道如何在JAR文件中包含内容。我的意思是:如果我的类路径中有app.jar文件,我似乎无法执行以下操作: 导入app.thing.thing2 不改变jar文件中的类路径 这里的想法是,我不认为我可以更改我的类路径,因为我需要将它设置为运行Clojure(或者我可以吗?)。全局类路径当前为/usr/share/java 请不要要求我使用Maven

好的。所以我的问题是:我正在用Clojure做一个数据解析器。我的程序的一部分是它必须能够绘制数据。我想,我会使用jFreeChart。然而,我完全不知道如何在JAR文件中包含内容。我的意思是:如果我的类路径中有app.jar文件,我似乎无法执行以下操作:

导入app.thing.thing2

不改变jar文件中的类路径

这里的想法是,我不认为我可以更改我的类路径,因为我需要将它设置为运行Clojure(或者我可以吗?)。全局类路径当前为/usr/share/java

请不要要求我使用Maven、Ant或任何项目构建工具,除非这是唯一的方法。这是一个供个人使用的脚本,不需要或不需要太多开销

我想知道我是否应该解压每个JAR文件,这样我就可以引用目录结构了?这不好吗


如果您需要任何澄清,请告诉我

不确定clojure是如何运行的,但您不只是将jar文件添加到类路径中吗

i、 e


如果你要学习基础知识,你可以内联你的类路径来包含你的JAR的硬编码位置,所以如果你在windows上,它看起来像

java-cp;%类路径%;C:/here/it/is/foo.jar com.foo.MyClass

Clojure可以使用(Java)
CLASSPATH
环境变量的内容,因此如果在运行Clojure之前将jar添加到全局类路径,您将“看到”它:

但是,在我看来,这并不是向Clojure的类路径添加jar的“干净”方式(因为这使库对任何Java程序可见,并且可能不需要)。相反,您应该使用
CLOJURE\u EXT
环境变量。这就是该变量的记录方式:

# CLOJURE_EXT The path to a directory containing (either directly or as
# symbolic links) jar files and/or directories whose paths
# should be in Clojure's classpath. The value of the
# CLASSPATH environment variable for Clojure will be a list
# of these paths followed by the previous value of CLASSPATH
# (if any).
在我的系统上,其定义如下:

export CLOJURE_EXT=~/.clojure
因此,要将jfreechart.jar(或任何其他库)添加到Clojures的类路径,请在
CLOJURE_EXT
变量中定义的目录中复制它(或添加指向它的符号链接)

顺便说一句(很抱歉,你的问题不是很清楚),如果你想把一些Java类捆绑到一个jar中,命令是这样的:

$ jar cf myjarfile *.class 

您可以找到Java归档工具jar的文档。

我完全尊重您不使用项目管理工具的愿望,尽管我只是花了比设置leiningen更长的时间来输入这句话。对于你的一次性脚本来说,任何工具都是多余的,Pascal Thivent的答案很好地说明了这一点。对于阅读这个问题的人来说,他们可能想要生成一个jar文件,或者轻松地将Clojure加载到emacs/slime swank中,我对leiningen的推荐力度太大了

JAR文件是否可用于编译/运行Java代码?也许问题在于JAR本身,因为它不打算直接添加到类路径中(这在我看来是个错误)。如果你让我们知道你用来运行或编译代码的命令/工具,我们可能会更有帮助。除了这个问题是关于Clojure的,如果我没有错,那么这对OP没有帮助。这个答案正是我想要的。我有时确实难以提出明确的问题。谢谢!
export CLOJURE_EXT=~/.clojure
$ jar cf myjarfile *.class