Очень хороший вопрос.
Мой опыт: java -- это в основном enterprize. Поэтому фриланса на нём меньше, часто сидят в офисе.
Выбор попытать делать удалённо долгосрочно большие проекты на java -- это очень правильно. Я сейчас на такой работе, это кайф. Скорее всего лучше web-проект, а не swing.
Что надо знать: java core, collections, threads, servlets.
А вот spring, jsp -- они не на всех проектах и мне лично не очень нравятся. А технологии которые мне не нравятся со временем умирают )))
Можно пробовать делать проект для заказчика и просить (выпрашивать) тестовое задание, после этого денно и нощно работать. Если кого подведёшь -- это их проблемы, они хотят сэкономить и идут на риски. Не обманывай, не бойся, не тупи, думай, старайся.
Я вообще не знал java, взял задание, мне скопировали на диск jdk, javadocs. И сделал за 3 дня. Это первая работа.
Даже если задание затянешь, всё равно доделай. Это уже можно показывать его другим. Также это база, которую можешь улучшать. Если ещё чего интересно, стучись в личку.