Ваш вариант 2 действительно будет работать, со следующими указаниями.
Вам потребуется (как сказал anjab) изменить путь к классу начальной загрузки.
В командной строке программы необходимо добавить следующее:
java -Xbootclasspath / p: C: \ your \ random_impl.jar YourProgram
Предполагается, что вы находитесь на Windown-машине или по пути к этому в любой ОС.
Эта опция добавляет классы в jar-файлы перед загрузкой rt.jar. Таким образом, ваш файл Random будет загружен раньше, чем класс Random rt.jar.
Использование отображается, набрав:
java -X
Отображает все функции X (tra), которые есть у JVM. Может быть недоступен
в других реализациях виртуальных машин, таких как JRockit или другие, но они есть в Sun JVM.
-Xbootclasspath / p: предварять перед путем к классу начальной загрузки
Я использовал этот подход в приложении, в котором класс ORB по умолчанию должен быть заменен на реализацию других ORB. Класс ORB является частью Java Core и никогда не имел проблем.
Удачи.