scala 无法使字段私有静态最终java.util.HashMap java.lang.ProcessEnvironment.theEnvironment可访问

juzqafwq  于 2022-11-09  发布在  Scala
关注(0)|答案(3)|浏览(306)

当我运行SBT时,我得到以下结果。我仍然可以继续工作,但警告/错误惹恼了我,并使我的终端变得混乱。你知道我该怎么解决这个问题吗?

  1. java.lang.reflect.InaccessibleObjectException: Unable to make field private static final java.util.HashMap java.lang.ProcessEnvironment.theEnvironment accessible: module java.base does not "opens java.lang" to unnamed module @43016
  2. at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
  3. at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
  4. at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
  5. at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
  6. at au.com.onegeek.sbtdotenv.DirtyEnvironmentHack$.$anonfun$setEnv$1(DirtyEnvironmentHack.scala:42)
  7. at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
  8. at scala.util.Try$.apply(Try.scala:213)
  9. at au.com.onegeek.sbtdotenv.DirtyEnvironmentHack$.setEnv(DirtyEnvironmentHack.scala:38)
  10. at au.com.onegeek.sbtdotenv.SbtDotenv$.configureEnvironment(SbtDotenv.scala:71)
  11. at au.com.onegeek.sbtdotenv.SbtDotenv$autoImport$.$anonfun$dotEnv$1(SbtDotenv.scala:42)
  12. at scala.Function1.$anonfun$compose$1(Function1.scala:49)
  13. at scala.Function1.$anonfun$compose$1(Function1.scala:49)
  14. at scala.Function1.$anonfun$compose$1(Function1.scala:49)
  15. at scala.Function1.$anonfun$compose$1(Function1.scala:49)
  16. at scala.Function1.$anonfun$compose$1(Function1.scala:49)
  17. at scala.Function1.$anonfun$compose$1(Function1.scala:49)
  18. at scala.Function1.$anonfun$compose$1(Function1.scala:49)
  19. at sbt.Project$.setProject(Project.scala:501)
pbossiut

pbossiut1#

堆栈跟踪提到“au.com.onegeek.sbtdotenv”,所以这显然来自https://github.com/mefellows/sbt-dotenv
你可以尝试升级到该插件的最新版本,看看问题是否消失了。
如果没有,您可以将问题报告给维护人员。
在《回购自述文件》中,有一节介绍了类似错误:https://github.com/mefellows/sbt-dotenv#illegal-reflective-access-warnings
我不清楚这是相同的还是不同的。

dojqjjoe

dojqjjoe2#

假设sbt-dotenv是罪魁祸首,您可以尝试几种方法:
1.创建一个.jvmopts并将其放置在您的工程根文件夹中。
1.在.env变量中添加export关键字前缀。
这应该可以解决这个问题

cidc1ykv

cidc1ykv3#

问题来自sbt-dotenv
在项目的根文件夹中,只需创建包含以下行的.jvmopts文件:

  1. --add-opens=java.base/java.util=ALL-UNNAMED
  2. --add-opens=java.base/java.lang=ALL-UNNAMED

相关问题