发在 Stackoverflow 上了:stackoverflow.com/questions/54043705/kotlin-always-tells-me-kotlinreflectionnotsupportederror
求帮忙 QwQ 非常感谢(
![]() |
1
sagaxu 339 天前 via Android
Make sure you have kotlin-reflect.jar in the classpath.
|
3
nicevar 338 天前
不是别没有仔细看问题,是你不理解,你生成的 jar 没有包含相应的类,只是依赖,当然报这个错了,你在 ide 里面运行的时候 ide 知道去找这个 jar。想确定问题的原因很简单,用 jd-gui 看一下生成的 jar 文件就知道了
|
7
nicevar 338 天前
@Trumeet 除非你手动处理了或者用了 fatjar 之类的,否则是不可能将依赖的 jar 打包到你的 jar 中去的,你为什么老说那句 IDE 运行的好好的,跟你说了 IDE 运行的时候知道依赖 jar 的位置,运行的时候就会去加载。
|
![]() |
8
Trumeet 338 天前
@nicevar 目前是这么打包的:
 JAR 中 `/kotlin/reflect`:  |
![]() |
11
Trumeet 338 天前
@nicevar 非常感谢,刚刚看了一下确实没有.... 不过应该是加入了呀.. 如何把它塞到 JAR 内呢.. ShadowJar 是不资瓷 Gradle 5.1 的((
|
![]() |
12
sagaxu 338 天前 via Android
@Trumeet 做 fatjar 的时候,不建议解压 jar 再打包,就算打对了包,有些场景下也会出错,比如多个 jar 有相同名字和路径的文件,解压后会相互覆盖。你可以用 application 打 tar 包或者 zip 包。或者把 shadowjar 或者 springboot 里的 classloader 抠出来自己打 fatjar。
|
![]() |
13
SoloCompany 338 天前
转换 kotlin 到 java 为啥需要用到 kotlin-reflect?
一般情况下完全不需要使用到 KClass 的反射支持吧, 你问题中提到的特性都完全和 kotlin-reflect 无关 |