2014-09-26 4 views
0

Я хочу скомпилировать child.java класс a get child.class, дочерний класс расширяет родительский класс. Я хочу, чтобы child.class включал весь необходимый код из родительского класса, на самом деле я могу использовать его независимо.Как скомпилировать расширенный класс в java?

Возможно ли это?

второй Вопрос: предположим, что у нас есть библиотека .jar, содержащая a.class, b.class, c.class ... я сделал обновленную версию a.class, как я могу заменить новую оригинальную a.class в банке? Является ли это возможным ?

извините за плохой английский язык.

+1

1) В принципе, вы не можете. Просто упакуйте их вместе или объявите зависимость 2) Просто заново создайте .jar –

+0

моей конечной целью является обновление библиотеки a.class в jar, библиотека закрыта. Сначала я хочу расширить класс a.class и создать новый класс a.class и заменить его старым, как я могу это достичь? – arsenal

+0

@arsenal Это будет невозможно. Возможно, вы попытаетесь переписать a.class из контрактов javadoc и байт-кода, но это просто безумие. – Deltharis

ответ

0

1) как Дмитрий, указанный в комментарии невозможно. Даже если ваш родительский класс абсолютно ничего не сделал, это определение будет по-прежнему проверяться, а если не найдено ClassNotFoundException (или аналогичный) будет выброшено

2) Возможно, возможно и полезно в некоторых ситуациях (исправление внешней библиотеки без перекомпиляции всего из источников приходит на ум) - см Is there are way to patch jar files? в частности, наиболее полезные (ИМО) является CoolBeans Ответит:

jar uf test.jar com\test\Test.class 

Обратите внимание, что вы должны позаботиться о правильной упаковке. И это не сработает, если банк будет подписан.

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