我写了一个简短的程序,它不需要任何类,反过来只需要顶级函数。
从你编写的java代码中找到jar的位置
MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()
但是因为我没有在我的kotlin代码中声明任何类,所以我不知道如何获得类引用。
我目前的实施是这个
class Ref
val jarPath = Ref::class.java.protectionDomain.codeSource.location.toURI().path
这显然是非常糟糕的代码。
所以我的问题是,如何在不声明任何不必要的类的情况下在kotlin中获取类引用。 任何提示赞赏:)
答案 0 :(得分:9)
您可以使用object expression声明一个类,但是匿名的类,以便周围的代码无法看到它:
val jarPath = object {}.javaClass.protectionDomain.codeSource.location.toURI().path