Как просмотреть исходный код из файла JAR в моем собственном Java GUI?

StackOverflow https://stackoverflow.com/questions/3493257

  •  28-09-2019
  •  | 
  •  

Вопрос

У меня есть один графический интерфейс с одним ящиком списка, чтобы отобразить список методов в классе. Я могу достичь его с использованием отражения. Но могу ли я просмотреть исходный код в другой области текста при выборе имени метода?

Я знал о декомпилерах. Но я не хочу видеть исходный код в своем окне.

Я хочу использовать немного третьей партии, чтобы я мог видеть исходный код определенного метода в моем собственном графическом интерфейсе.

Пожалуйста, предложите, если для этого доступна API.

Это было полезно?

Решение

Вам понадобится декомпилятор какой-то, чтобы вы могли связаться. Я не уверен, что есть какие-либо библиотеки, но вот ссылка на JD Java Decompiler.

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

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

Ваша самая большая проблема будет определять, когда метод заканчивается, и простое решение - сосчитать {'песок }и определите, когда { Декларация метода закрыта.

Другие советы

Это старый вопрос, но, поскольку в прошлом году ландшафт декомпилятора значительно изменился, я чувствую, что его стоит воскресить.

Пропионский Является ли структура открытых источников, которая содержит, среди прочего, Java Decompiler. Он написан в Java, и API для декомпилятора могут быть легко интегрированы в другое приложение довольно легко. На самом деле, уже есть две сторонние интерфейсы GUI, включая Secureteam Java Decompiler.

CFR У нее нет доступного исходного кода, но это также отличный декомпилятор. Это тоже написано в Java, и пока я не пытался интегрировать его с существующим приложением, он, безусловно, должен быть возможен.

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

Я использовал NetBeans, поэтому упаковка .java Файлы были максимально легкими, как изменение одной опции фильтра. Я проверил недвижимость Java, чтобы найти файл JAR и отсканировал его как и любой Zip-файл для исходных файлов Java. При таком подходе, имеющем графический интерфейс с Jtreatable, населенными исходными файлами и JTextarea, отображающим исходный код, был тривиальным.

Я считаю, что вы можете сделать то же самое с добавлением на один шаг больше - отсечение источника, чтобы содержать только выбранный метод. Я думаю, что он должен кипеть до простого анализатора, который подсчитывает открытие и закрывающие кронштейны.

Я покидаю более раннее ответа на случай, если вам это нужно, но Jode не был обновлен в течение длительного времени. Поиск вокруг, я не могу найти какой-либо декомпилятор, который является открытым источником или доступным в форме библиотеки.

Джод может быть именно то, что вы хотите. Основной декомпилятор выпускается как библиотека под LGPL GNU, поэтому вы можете интегрировать его в свою программу без проблем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top