Как собрать Java JRE из исходного кода (src.zip в JDK)? - PullRequest
6 голосов
/ 09 февраля 2011

Удивительно, но я не смог найти ответ на этот вопрос.

Я пытаюсь восстановить JRE из исходного кода. Я получаю исходный код JRE Java, распаковав файл src.zip в JDK.

После внесения любых изменений в JRE, как мне скомпилировать новый источник обратно в файлы .java (после чего я могу сжать его в файл rt.jar).

Спасибо.

Ответы [ 4 ]

3 голосов
/ 09 февраля 2011

У вас больше шансов использовать OpenJDK (основа будущих JDK Oracle / Sun). http://openjdk.java.net/

Но что вы хотите изменить на самом деле? Может быть, есть лучший способ ...

2 голосов
/ 09 февраля 2011

Если вы хотите изменить номер класса, вам нужно только скомпилировать эти классы. Вам не нужно компилировать весь JDK, если вы не собираетесь его заменять.

Если вы просто хотите исправить это, создайте JAR из ваших измененных классов и добавьте его в путь к загрузочному классу.

1 голос
/ 09 февраля 2011

Некоторые из источников Java, которые составляют rt.jar генерируются во время сборки процесс, из скриптов и других средств. Некоторые из файлов свойств также генерируется таким образом, и некоторые из файлы свойств превращаются в Java источник, который также способствует rt.jar. Так что без полной построить первым и заполнить каталог 'gensrc', у вас не будет всех источники, из которых состоит rt.jar.

Взято из: http://www.java.net/forum/topic/jdk/java-se-snapshots-project-feedback/it-possible-just-build-rtjar

Таким образом, когда вы говорите javac для всех java-файлов внутри src.zip, он не скомпилируется, так как граф зависимостей поврежден (отсутствуют сгенерированные файлы)

Также посмотрите на это: Где взять полный исходный код для rt.jar?

1 голос
/ 09 февраля 2011

После повторного рассмотрения вопроса.Javac на любом из этих файлов позволит вам восстановить их.Также вы не компилируете файлы .java в файлы .java, они становятся файлами .class.Вы можете написать скрипт сборки ANT, чтобы справиться с тяжелой работой за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...