I'd like a weak hash table which allows GC when value is otherwise unreferenced

It looks like folks are helping out with the immediate problems at hand. Just one side-note, in case it should ever become relevant:

As folks have pointed out about, you don’t need any extra ceremony to use Java classes – Scala is, intentionally, pretty compatible with Java. (Indeed, some of Scala’s odder nuances are precisely because the Java compatibility was Very Very Important early in Scala’s life, when it was still establishing traction.)

However, note that this is not entirely true when using Scala.js in the browser, and compiling to JavaScript. Scala.js is, by design, nicely interoperable with JavaScript, but JS doesn’t have Scala’s notion of strong types. So interoperating with JS does require some ceremony – either finding or writing a Scala “facade” (in the form of a trait) that describes in a strongly-typed way how a JS library works.