Как получить текущее имя файла класса в kotlin

В Java я могу использовать следующий код:

public class Ex { public static void main(String [ ] args) { String path = Ex.class.getProtectionDomain().getCodeSource().getLocation().getPath(); String decodedPath = URLDecoder.decode(path, "UTF-8"); } } 

но в Котлине основная функция определяется вне класса. Как я могу получить текущее имя файла?

В качестве обходного пути поместите main метод в объект-компаньон.
Этот код будет показывать тот же путь, что и ваш Java-код:

 class ExKt { companion object { @JvmStatic fun main(args: Array<String>) { val path = ExKt::class.java.protectionDomain.codeSource.location.path println("Kotlin: " + path) } } } 

Решение:

 class Ex() { fun m() { var p2 = Ex::class.java.simpleName println("p2:${p2}") } } fun main(args: Array<String>) { Ex().m() } . class Ex() { fun m() { var p2 = Ex::class.java.simpleName println("p2:${p2}") } } fun main(args: Array<String>) { Ex().m() }