2010-05-31 2 views
3

Когда мы скомпилируем java-программу, получаем файлы .class. Могу ли я получить доступ к этим .class-файлам java-основных библиотек? например я могу получить доступ к java.lang.String.class?Инструментальные библиотеки ядра Java

На самом деле я занимаюсь исследованием и пытаюсь найти покрытие филиалов некоторых базовых библиотек Java. Инструмент, который я использую для покрытия филиалов, фактически использует файлы .class.

Благодаря

+0

вместо инструментария байт-кодов, не могли бы вы также непосредственно взять исходный код для всей JRE из OpenJDK 7 и иметь AST для каждого .java-файла (включая String.java) и непосредственно использовать инструментарий исходного кода? – NoozNooz42

+0

Не уверен, что я понимаю, что вы сказали, но мой сценарий похож на то, что я использую инструмент для автоматического тестирования и отдельный инструмент для охвата филиалов. Я хотел использовать их оба, так как это было иначе, поскольку инструменты потребовали бы слишком много времени. – neebz

ответ

5

Это в rt.jar в каталоге JRE. У вас даже есть источники в src.zip. (Или вы могли бы просто вытащить последнюю версию OpenJDK.)

Кроме того, если вы хотите использовать базовые классы, вам также необходимо указать путь к классу загрузки. Посмотрите на опции -Xbootclasspath для java: http://java.sun.com/javase/6/docs/technotes/tools/windows/java.html

+0

Нет ли проблем с безопасностью? Разве менеджер безопасности не проверяет, что классы выполнения Java не повреждены? –

+0

@ Pèter, прошло какое-то время с тех пор, как я это пробовал, но я не помню, чтобы это делалось. – gustafc

4

Конечно, это прямо там, в jre/lib/rt.jar внутри вашего JAVA_HOME

+0

, так что в основном я использую его, обрабатываю классы, а затем снова кладу его и помещаю в один и тот же каталог. верный? – neebz

+1

Чтобы не нарушать вашу установку, я бы посоветовал вместо этого использовать «-Xbootclasspath». – gustafc

+0

Да, это должно работать на исследования. Однако не делайте этого в любом серьезном производстве. – unbeli

1

Да, файлы классов находятся внутри # {JDK УСТАНОВИТЬ PATH} /jre/lib/rt.jar архив. Или, если вы используете IDE, например Eclipse, вы можете ctrl + щелкнуть по любому строковому методу или по «String» в объявлениях вроде private String var;, чтобы открыть этот класс.

Смежные вопросы