Skip to content
Cannot retrieve contributors at this time
35 lines (29 sloc) 1.21 KB
;;; jar.clj: utilities for working with Java JAR files
;; by Stuart Sierra,
;; April 19, 2009
;; Copyright (c) Stuart Sierra, 2009. All rights reserved. The use
;; and distribution terms for this software are covered by the Eclipse
;; Public License 1.0 (
;; which can be found in the file epl-v10.html at the root of this
;; distribution. By using this software in any fashion, you are
;; agreeing to be bound by the terms of this license. You must not
;; remove this notice, or any other, from this software.
^{:author "Stuart Sierra",
:doc "Utilities for working with Java JAR files"}
(:import ( File)
(java.util.jar JarFile)))
(defn jar-file?
"Returns true if file is a normal file with a .jar or .JAR extension."
[^File file]
(and (.isFile file)
(or (.endsWith (.getName file) ".jar")
(.endsWith (.getName file) ".JAR"))))
(defn filenames-in-jar
"Returns a sequence of Strings naming the non-directory entries in
the JAR file."
[^JarFile jar-file]
(map #(.getName %)
(filter #(not (.isDirectory %))
(enumeration-seq (.entries jar-file)))))