Вообще можно, и достаточно удобно - я так использую texlive (latexmk, pdflatex), python (notebook), пробовал pycharm (и т.п. -
https://github.com/aplavin/dockerfiles). Для не-графических программ обычно вообще просто - к контейнеру как volume присоединяется нужная папка, для удобства можно сделать скрипт, принимающий эту самую папку в качестве аргумента и запускающий что нужно. Для графических нужно ещё пробросить сокет X-сервера, но тоже в общем-то ничего сложного.
Правда отдельно с java не пробовал.