Вот что я делаю:
- извлечь содержимое моего JRE's rt.jar
- Извлеките src.zip из моего JDK (та же версия)
Теперь, если я скопирую Runtime.java из извлеченной папки src и скомпилирую его с помощью javac.exe без каких-либо изменений, а затем поместу его в извлеченную папку rt, чтобы, наконец, все вернуть в файл jar с помощью jar.exe, работает как положено. JRE работает нормально.
Однако, если я внесу малейшее изменение в Runtime.java, скомпилирую его и поместу в rt.jar, JRE вылетает всякий раз, когда я пытаюсь его запустить. Это пример небольшого изменения, которое вызывает тихий сбой:
/** Don't let anyone else instantiate this class */
private Runtime() {
System.out.println("This is a test.");
}
Вместо:
/** Don't let anyone else instantiate this class */
private Runtime() {}
Может кто-нибудь сказать мне, почему это приводит к сбою моей JRE?
Заранее спасибо.