Chương trình Clojure có thể tìm MANIFEST.MF của riêng nó như thế nào (giả sử nó được đóng gói trong tệp JAR).Chương trình Clojure đọc MANIFEST.MF riêng của mình
Tôi cố gắng để làm điều này từ tôi chức năng "-main", nhưng tôi không thể tìm thấy một lớp học để sử dụng trong đoạn mã sau:
(.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"))
Cảm ơn.
Cảm ơn, điều này hữu ích. Tôi đã làm một chút refactoring bởi vì tôi là ám ảnh về điều đó. Đây là những gì tôi đã kết thúc với: (defn get-Hàm-vị trí [sym] (.. (lớp sym) getProtectionDomain getCodeSource getLocation)) (defn get-manifest-thuộc tính [] (cho [vị trí (get-function-location get-manifest-attributes)] (khi không (vị trí không) (-> (str "jar:" location "! /META-INF/MANIFEST.MF") (URL.) (.openStream) (Tệp kê khai.) (.getMainAttributes))))) –
Chỉnh sửa: chuyển biểu tượng cho hàm không hoạt động chính xác. Tôi đã kết thúc việc đổi tên địa điểm get-function-get-location và chuyển get-location sang lớp. –