Disclaimer: I don't develop in Java, but what I'm going to say applies to pretty much every development environment I've used except for iOS development, which requires Xcode, and now the World of Warcraft add-on that I'm developing, which requires the World of Warcraft client.
I think your setup is unnecessarily complex. There's no need for a Linux virtual machine when you already have the Windows Subsystem for Linux which can be used with Docker, and from what I've
$1, Docker is supported by the Visual Studio Code Remote Development Extension Pack, so that's all you need in addition to the language support extensions.
Personally I'm on MacOS, and use TextMate 2 instead of Visual Studio Code because I can't find a comfortable way to interact with the latter using VoiceOver. Every project I work on, except for the aforementioned cases, has all the tools and dependencies installed inside throw-away development Alpine Linux Docker containers with which I interact through the terminal, but in any case Docker shouldn't be an obstacle to using all the features of Visual Studio Code, much in the same way that a virtual machine isn't an obstacle.