启动 sbt 1.5.0 时获取 NullPointerException
Get NullPointerException when starting sbt 1.5.0
当 运行 sbt 命令在任何目录(主目录
除外)上时出现以下错误
发生在手动安装或通过 sdkman 安装的 sbt 上。
发生在 open jdk 11 和 16
$ sbt
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at sbt.internal.XMainConfiguration.makeConfiguration(XMainConfiguration.java:102)
at sbt.internal.XMainConfiguration.run(XMainConfiguration.java:45)
at sbt.xMain.run(Main.scala:46)
at xsbt.boot.Launch$.$anonfun$run(Launch.scala:149)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
at xsbt.boot.Launch$.run(Launch.scala:149)
at xsbt.boot.Launch$.$anonfun$apply(Launch.scala:44)
at xsbt.boot.Launch$.launch(Launch.scala:159)
at xsbt.boot.Launch$.apply(Launch.scala:44)
at xsbt.boot.Launch$.apply(Launch.scala:21)
at xsbt.boot.Boot$.runImpl(Boot.scala:78)
at xsbt.boot.Boot$.run(Boot.scala:73)
at xsbt.boot.Boot$.main(Boot.scala:21)
at xsbt.boot.Boot.main(Boot.scala)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at sbt.internal.XMainConfiguration.makeConfiguration(XMainConfiguration.java:84)
... 13 more
Caused by: java.lang.NullPointerException
at java.base/java.util.ArrayDeque.addLast(ArrayDeque.java:304)
at java.base/java.util.ArrayDeque.add(ArrayDeque.java:495)
at java.base/jdk.internal.loader.URLClassPath.<init>(URLClassPath.java:154)
at java.base/jdk.internal.loader.URLClassPath.<init>(URLClassPath.java:171)
at java.base/java.net.URLClassLoader.<init>(URLClassLoader.java:120)
at sbt.internal.SbtInterfaceLoader.<init>(SbtInterfaceLoader.java:16)
at sbt.internal.MetaBuildLoader.makeLoader(MetaBuildLoader.java:143)
... 18 more
[error] [launcher] error during sbt launcher: java.lang.RuntimeException:
java.lang.reflect.InvocationTargetException
谢谢
萨阿德
清理缓存确实解决了这个问题。
rm -fr ~/.sbt/
rm -fr ~/.ivy2/
我 运行 在 macOS 运行 使用 SDKMan 的各种版本 JDK 上遇到同样的问题。
删除 ~/.ivy2/
可能有点矫枉过正 YMMV。
当 运行 sbt 命令在任何目录(主目录
除外)上时出现以下错误
发生在手动安装或通过 sdkman 安装的 sbt 上。
发生在 open jdk 11 和 16
$ sbt
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at sbt.internal.XMainConfiguration.makeConfiguration(XMainConfiguration.java:102)
at sbt.internal.XMainConfiguration.run(XMainConfiguration.java:45)
at sbt.xMain.run(Main.scala:46)
at xsbt.boot.Launch$.$anonfun$run(Launch.scala:149)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
at xsbt.boot.Launch$.run(Launch.scala:149)
at xsbt.boot.Launch$.$anonfun$apply(Launch.scala:44)
at xsbt.boot.Launch$.launch(Launch.scala:159)
at xsbt.boot.Launch$.apply(Launch.scala:44)
at xsbt.boot.Launch$.apply(Launch.scala:21)
at xsbt.boot.Boot$.runImpl(Boot.scala:78)
at xsbt.boot.Boot$.run(Boot.scala:73)
at xsbt.boot.Boot$.main(Boot.scala:21)
at xsbt.boot.Boot.main(Boot.scala)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at sbt.internal.XMainConfiguration.makeConfiguration(XMainConfiguration.java:84)
... 13 more
Caused by: java.lang.NullPointerException
at java.base/java.util.ArrayDeque.addLast(ArrayDeque.java:304)
at java.base/java.util.ArrayDeque.add(ArrayDeque.java:495)
at java.base/jdk.internal.loader.URLClassPath.<init>(URLClassPath.java:154)
at java.base/jdk.internal.loader.URLClassPath.<init>(URLClassPath.java:171)
at java.base/java.net.URLClassLoader.<init>(URLClassLoader.java:120)
at sbt.internal.SbtInterfaceLoader.<init>(SbtInterfaceLoader.java:16)
at sbt.internal.MetaBuildLoader.makeLoader(MetaBuildLoader.java:143)
... 18 more
[error] [launcher] error during sbt launcher: java.lang.RuntimeException:
java.lang.reflect.InvocationTargetException
谢谢 萨阿德
清理缓存确实解决了这个问题。
rm -fr ~/.sbt/
rm -fr ~/.ivy2/
我 运行 在 macOS 运行 使用 SDKMan 的各种版本 JDK 上遇到同样的问题。
删除 ~/.ivy2/
可能有点矫枉过正 YMMV。