Имена параметров метода Java из файла JAR в Eclipse - PullRequest
5 голосов
/ 03 октября 2010

Я создал библиотеку Java с файлом ant, чтобы встроить ее в JAR. Когда я использую этот JAR-файл из другого проекта Java, имена параметров метода появляются, как в подсказке / автозаполнении метода Eclipse: arg0, arg1, arg ...

например, метод:

     void publishStatus(String jobId, int count);

выглядит как:

     void publishStatus(String arg0, int arg1);

Чего мне не хватает?

Спасибо

Редактировать

Похоже, это уже обсуждалось здесь более подробно: Сохранение имен параметров / аргументов в скомпилированных классах Java

Ответы [ 2 ]

4 голосов
/ 03 октября 2010

Имена аргументов метода Java не представлены в формате файла класса.Соответствующие части спецификации JVM - это разделы 4.3.3 и 4.6 .(Строго говоря, они могут быть в некоторых случаях, но они не могут быть включены для интерфейсов и не будут включены, если соответствующие параметры компилятора не были установлены при компиляции класса.)

На практике Eclipse может также предоставить вам имена аргументов метода, если он может найти и проанализировать исходный код, соответствующий файлам классов.В простом случае вы можете решить эту проблему, загрузив ZIP-файл и т. Д., Содержащий соответствующий исходный код, и прикрепив его к двоичному JAR.

FOLLOWUP Ваш комментарий:

Я не хотел включать исходную папку в JAR (хотя это, очевидно, работает).Если вы посмотрите на свойства Eclipse для зависимого файла JAR, есть способ присоединить соответствующий исходный JAR или каталог.(Я не могу запустить Eclipse прямо сейчас, чтобы дать вам точную информацию.) В любом случае, этот подход не требует, чтобы вы перекомпилировали или иным образом изменили зависимый JAR.

3 голосов
/ 03 октября 2010

Вам нужно, чтобы компилятор java включал «отладочную информацию» при компиляции классов и заново создавал ваш jar-файл.

Для муравья это означает наличие атрибута debug="true" в теге <javac ...>.

...