Clojure程序读取自己的MANIFEST.MF [英] Clojure program reading its own MANIFEST.MF

查看:162
本文介绍了Clojure程序读取自己的MANIFEST.MF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Clojure程序如何找到自己的MANIFEST.MF(假设它被打包在JAR文件中)。

How can a Clojure program find its own MANIFEST.MF (assuming it is packaged in a JAR file).

我试图从我的 main函数,但我找不到一个类在以下代码中使用:

I am trying to do this from my "-main" function, but I can't find a class to use in the following code:

  (.getValue
    (..
      (java.util.jar.Manifest.
        (.openStream
          (java.net.URL.
            (str
              "jar:"
              (..
                (class **WHAT-GOES-HERE**)
                getProtectionDomain
                getCodeSource
                getLocation)
              "!/META-INF/MANIFEST.MF"))))
      getMainAttributes)
    "Build-number"))



<

Thanks.

推荐答案

这似乎可靠地工作:

(defn set-version
  "Set the version variable to the build number."
  []
  (def version
    (.getValue (.. (Manifest.
      (.openStream
        (URL.
          (str "jar:"
            (.getLocation
              (.getCodeSource
                (.getProtectionDomain org.example.myproject.thisfile)))
            "!/META-INF/MANIFEST.MF"))))
      getMainAttributes)
      "Build-number")))

这篇关于Clojure程序读取自己的MANIFEST.MF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆