我写了一个简短的程序,它不需要任何类,而只需要顶级函数.
从你编写的java代码中找到jar的位置
MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()
Run Code Online (Sandbox Code Playgroud)
但由于我没有在我的kotlin代码中声明任何类,我不知道如何获得类引用.
我目前的实施是这样的
class Ref
val jarPath = Ref::class.java.protectionDomain.codeSource.location.toURI().path
Run Code Online (Sandbox Code Playgroud)
这显然是非常糟糕的代码.
所以我的问题是,如何在不声明任何不必要的类的情况下在kotlin中获取类引用.任何提示赞赏:)
您可以使用对象表达式声明一个类,但是匿名的类,以便它对周围的代码不可见:
val jarPath = object {}.javaClass.protectionDomain.codeSource.location.toURI().path
Run Code Online (Sandbox Code Playgroud)