Just wanted to post a tip: If you intend to use LanguageTool in multiple threads then be careful of using the static members of the Language class.
I have a few threads doing grammar checking. Each thread creates its own instance of JLanguageTool but I inadvertently shared an instance of the Language class between threads, which isn’t thread-safe.
The fix is simple, once you know!
langTool = new JLanguageTool(Language.AUSTRALIAN_ENGLISH);
langTool = new JLanguageTool(new AustralianEnglish());