Ответ 1
Построение самого JDK является сложным процессом и не может быть достигнуто простым вызовом javac
, заключенным внутри проекта ant
.
Вы должны посмотреть на OpenJDK Build README, чтобы получить инструкции по сборке для вашей платформы.
Я хочу скомпилировать jdk файлы, чтобы включить отладочную информацию.
Я хотел бы использовать ant, потому что он включен в мою среду NetBeans, поэтому я сделал следующее:
<?xml version="1.0" encoding="UTF-8"?> <project name="CompileJDK" default="default" basedir="."> <target name="default"> <javac srcdir="." destdir="jdkwd" debug="on" /> </target> </project>
Это приводит к 100 ошибкам компиляции, таким как:
[javac] C:\jdkdebug\java\awt\Window.java:196: cannot find symbol
[javac] symbol : class IdentityArrayList
[javac] location: class java.awt.Window
[javac] private static final IdentityArrayList<Window> allWindows = new IdentityArrayList<Window>();
У меня на моем компьютере установлен только один JDK, поэтому я не знаю, почему он не разрешает все эти ссылки.
UPDATE: Большинство этих неразрешенных ссылок относится к пакету:
sun.awt.util
Теперь вопрос исправляется: где находятся отсутствующие файлы jdk?
Построение самого JDK является сложным процессом и не может быть достигнуто простым вызовом javac
, заключенным внутри проекта ant
.
Вы должны посмотреть на OpenJDK Build README, чтобы получить инструкции по сборке для вашей платформы.
http://www.oracle.com/technetwork/java/faq-141681.html
A14. Где я могу получить исходный код языка программирования Java?
Программное обеспечение Java имеет два отдельных пакета исходного кода, которые вы можете получить бесплатно:
Сам Java 2 SDK, Standard Edition содержит файл src.zip, который содержит исходный код для общедоступных классов в пакете java. Поскольку это не содержит классов sun. *, вы не можете выполнить полную сборку технологии Java из этих исходных файлов. Эти исходные файлы предназначены для вашей информации, чтобы дополнить документацию, чтобы вы могли видеть, как Работает технология Java.
Полную версию исходного кода можно получить у нас, перейдя на веб-сайт лицензирования исходного кода сообщества.
Ссылка на исходный код сообщества неверна: теперь http://download.java.net/openjdk/jdk7/
Попробуйте добавить путь к классу в ваш вызов javac.
<classpath path="/PATH/to/missing_class/" />
Также попробуйте запустить ant с параметрами -d и -v. Это много выходных данных, но покажет вам, где искать классы.
Согласно этот пост (с 2007 года), вы должны включить rt.jar и tools.jar в свой путь к классу для компиляции источников JRE.
Однако я пробовал это, и он не работает для меня (100 ошибок).
В сообщении christhielen есть более сложные и более старые (2004) инструкции в ошибка Java, запрашивающая символы отладки.
Если вы используете компиляцию Gentoo, OpenJDK будет такой же простой, как запуск emerge dev-java/icedtea
.
Существует флаг использования debug
, который отключает все оптимизации, я сам не пробовал, но, скорее всего, это то, что вы хотите. Если это не так - тогда не должно быть большого смысла менять скрипты сборки, но вам потребуется немного узнать о портеже.