Skip to content

Instantly share code, notes, and snippets.

@davidohana
Last active December 22, 2021 09:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidohana/915dd73b385dd6911976aa28b50ccd3a to your computer and use it in GitHub Desktop.
Save davidohana/915dd73b385dd6911976aa28b50ccd3a to your computer and use it in GitHub Desktop.
fun String.startsWithAny(vararg prefixes: String): Boolean {
return prefixes.any { this.startsWith(it) }
}
fun getLoadedPackageVersions(vararg excludePrefixes: String): String {
val packages = Package.getPackages()
val filteredPackages = packages.filterNot {
it.name.startsWithAny(*excludePrefixes)
}
val versionsText = filteredPackages
.map { "\t${it.name}: ${it.implementationTitle} v(${it.implementationVersion}) by ${it.implementationVendor}" }
.sorted()
.joinToString("\n")
return "Versions of ${filteredPackages.size} loaded packages:\n${versionsText}"
}
object App {
@JvmStatic
fun main(args: Array<String>) {
println(getLoadedPackageVersions("java.", "javax.", "jdk.", "sun.", "com.sun."))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment