coursier / class-path-util   0.1.4

Apache License 2.0 GitHub

Micro library to parse class paths

Scala versions: 3.x 2.13 2.12


Utility library to parse class path inputs, and return the corresponding files. It handles simple globs (/dir/*, /dir/*.jar) and Java properties (${spark.home}/jars/*).


Add it as a dependency:

//> using lib "io.get-coursier::class-path-util:0.1.1"

Import it:

import coursier.cputil.ClassPathUtil

Use it like

ClassPathUtil.classPath("/foo/${thing}/*:/a/b.jar") // Seq[java.nio.file.Path]



Just like the format that java -cp accepts, paths are split by an OS-dependent separator: ; on Windows, : on Linux / macOS (and other Unix systems). class-path-util uses the separator returned by


* and *.jar are accepted at the end of a path. Case doesn't matter (*.JAR works too, for example). Both * and *.jar are equivalent, and make class-path-util add all the JARs (files ending in .jar, comparison done in a case-insensitive way) of the underlying directory to the class path.

Version policy

The API of this library is minimal (one singleton with 2 methods).

It intends to respect semantic versioning, even with 0.x versions (major version 0 subjected to the same constraints as 1, 2, etc.).