final class JrtClassPath
extends ClassPath with NoSourcePaths

Implementation ClassPath based on the JDK 9 encapsulated runtime modules (JEP-220)

https://bugs.openjdk.java.net/browse/JDK-8066492 is the most up to date reference for the structure of the jrt:// filesystem.

The implementation assumes that no classes exist in the empty package.

Constructors

JrtClassPath ( fs: FileSystem )

Members

type F = Path
private val dir : Path
private val fs : FileSystem
private val packageToModuleBases : Map [ String, Seq [ Path ] ]
def asClassPathStrings : Seq [ String ]
def asURLs : Seq [ URL ]
def classes ( inPackage: String ) : Seq [ ClassFileEntry ]
def findClassFile ( className: String ) : Option [ AbstractFile ]
override def list ( inPackage: String ) : ClassPathEntries

Allows to get entries for packages and classes merged with sources possibly in one pass.

Allows to get entries for packages and classes merged with sources possibly in one pass.

private def packageOf ( dottedClassName: String ) : String
override def packages ( inPackage: String ) : Seq [ PackageEntry ]

Empty string represents root package

Empty string represents root package