title: sbt - Scala - Brew - MacOS - Unable to connect to sbt shell at all: NoClassDefFoundError
body: <p>So I'm just trying to get a project set up using JDK 15 / SBT 1.5.4 / Scala 2.13.6 all of which have been installed via brew on MacOS.</p>
  <p>However before I even attempt to build via intellij etc.  I'm unable to connect to the sbt shell via a normal terminal.</p>
  <pre><code>[info] welcome to sbt 1.5.4 (AdoptOpenJDK Java 15.0.2)
  [info] loading global plugins from /Users/user/.sbt/1.0/plugins
  [warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
  Exception in thread &quot;Thread-0&quot; java.lang.NoClassDefFoundError: Could not initialize class com.swoval.runtime.ShutdownHooks
          at com.swoval.runtime.ShutdownHooks$1.run(ShutdownHooks.java:25)
  </code></pre>
  <p>I've tried reinstalling all three dependancies a few times and cleared the cache but still nothing.  I'm guessing something isn't configured right because it's unable to even connect to the shell.</p>
  <p>Thanks!</p>
  <p>EDIT: I've just followed the install steps on the sbt docs and the only requirements are JDK 11 or 8 and sbt itself.  I've removed scala / JDK15 and re-downloaded JDK 11 via SDK-man this time and i'm still having the same issue.</p>
  <p>EDIT 2: I've removed the <code>.sbt</code> directory and reinitiased and now <code>sbt</code> command is showing more output, hopefully this helps a little more.</p>
  <pre><code>java.lang.NoClassDefFoundError: Could not initialize class com.swoval.runtime.ShutdownHooks
      at com.swoval.runtime.NativeLoader.loadPackaged(NativeLoader.java:143)
      at com.swoval.runtime.NativeLoader.loadPackaged(NativeLoader.java:174)
      at com.swoval.files.apple.FileEventMonitorImpl.&lt;clinit&gt;(FileEventMonitors.java:127)
      at com.swoval.files.apple.FileEventMonitors.get(FileEventMonitors.java:47)
      at com.swoval.files.ApplePathWatcher.&lt;init&gt;(ApplePathWatcher.java:258)
      at com.swoval.files.ApplePathWatcher.&lt;init&gt;(ApplePathWatcher.java:194)
      at com.swoval.files.ApplePathWatchers.get(ApplePathWatcher.java:331)
      at com.swoval.files.PathWatchers.get(PathWatchers.java:84)
      at com.swoval.files.FileTreeRepositories.get(FileTreeRepositories.java:64)
      at com.swoval.files.FileTreeRepositories.get(FileTreeRepositories.java:32)
      at sbt.internal.nio.FileTreeRepositoryImpl.&lt;init&gt;(FileTreeRepositoryImpl.scala:46)
      at sbt.internal.nio.FileTreeRepository$.default(FileTreeRepository.scala:40)
      at sbt.BuiltinCommands$.$anonfun$setupGlobalFileTreeRepository$1(Main.scala:985)
      at sbt.BuiltinCommands$.$anonfun$doLoadProject$5(Main.scala:974)
      at sbt.Project$.setProject(Project.scala:501)
      at sbt.BuiltinCommands$.doLoadProject(Main.scala:974)
      at sbt.BuiltinCommands$.$anonfun$loadProjectImpl$2(Main.scala:912)
      at sbt.Command$.$anonfun$applyEffect$4(Command.scala:150)
      at sbt.Command$.$anonfun$applyEffect$2(Command.scala:145)
      at sbt.Command$.process(Command.scala:189)
      at sbt.MainLoop$.$anonfun$processCommand$5(MainLoop.scala:245)
      at scala.Option.getOrElse(Option.scala:189)
      at sbt.MainLoop$.process$1(MainLoop.scala:245)
      at sbt.MainLoop$.processCommand(MainLoop.scala:278)
      at sbt.MainLoop$.$anonfun$next$5(MainLoop.scala:163)
      at sbt.State$StateOpsImpl$.runCmd$1(State.scala:289)
      at sbt.State$StateOpsImpl$.process$extension(State.scala:325)
      at sbt.MainLoop$.$anonfun$next$4(MainLoop.scala:163)
      at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
      at sbt.MainLoop$.next(MainLoop.scala:163)
      at sbt.MainLoop$.run(MainLoop.scala:144)
      at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:119)
      at sbt.io.Using.apply(Using.scala:27)
      at sbt.MainLoop$.runWithNewLog(MainLoop.scala:112)
      at sbt.MainLoop$.runAndClearLast(MainLoop.scala:66)
      at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:51)
      at sbt.MainLoop$.runLogged(MainLoop.scala:42)
      at sbt.StandardMain$.runManaged(Main.scala:218)
      at sbt.xMain$.$anonfun$run$11(Main.scala:133)
      at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
      at scala.Console$.withIn(Console.scala:230)
      at sbt.internal.util.Terminal$.withIn(Terminal.scala:560)
      at sbt.internal.util.Terminal$.$anonfun$withStreams$1(Terminal.scala:350)
      at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
      at scala.Console$.withOut(Console.scala:167)
      at sbt.internal.util.Terminal$.$anonfun$withOut$2(Terminal.scala:550)
      at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
      at scala.Console$.withErr(Console.scala:196)
      at sbt.internal.util.Terminal$.withOut(Terminal.scala:550)
      at sbt.internal.util.Terminal$.withStreams(Terminal.scala:350)
      at sbt.xMain$.withStreams$1(Main.scala:87)
      at sbt.xMain$.run(Main.scala:121)
      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.run(XMainConfiguration.java:56)
      at sbt.xMain.run(Main.scala:46)
      at xsbt.boot.Launch$.$anonfun$run$1(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$1(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)
  [error] java.lang.NoClassDefFoundError: Could not initialize class com.swoval.runtime.ShutdownHooks
  [error] Use 'last' for the full log.
  [warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
  Exception in thread &quot;Thread-0&quot; java.lang.NoClassDefFoundError: Could not initialize class com.swoval.runtime.ShutdownHooks
          at com.swoval.runtime.ShutdownHooks$1.run(ShutdownHooks.java:25)
  </code></pre>
  <p>EDIT3: Tried creating a new user and just downloading sbt and still getting the same issue.  Will attempt completely removing Java as it seems to be the culprit and reinstalling.</p>