blob: a5a1a6d3f097274bcf6093868affbf0747783274 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
;;; classpath.clj: utilities for working with the Java class path
;; by Stuart Sierra, http://stuartsierra.com/
;; 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 (http://opensource.org/licenses/eclipse-1.0.php)
;; 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.
(ns
#^{:author "Stuart Sierra",
:doc "Utilities for dealing with the JVM's classpath"}
clojure.contrib.classpath
(:require [clojure.contrib.jar :as jar])
(:import (java.io File)
(java.util.jar JarFile)))
(defn classpath
"Returns a sequence of File objects of the elements on CLASSPATH."
[]
(map #(File. %)
(.split (System/getProperty "java.class.path")
(System/getProperty "path.separator"))))
(defn classpath-directories
"Returns a sequence of File objects for the directories on classpath."
[]
(filter #(.isDirectory %) (classpath)))
(defn classpath-jarfiles
"Returns a sequence of JarFile objects for the JAR files on classpath."
[]
(map #(JarFile. %) (filter jar/jar-file? (classpath))))
|