Как извлечь исходный код из файла Jar? - PullRequest
9 голосов
/ 03 июля 2010

Я получил исходный код для продукта Java, чтобы внести дальнейшие изменения.Архив содержит кучу JAR-файлов.

Достаточно ли для разработки приложения или только эти файлы для распространения?

Ответы [ 5 ]

9 голосов
/ 04 июля 2010

Я получил исходный код для продукта Java ...

Если вы действительно получили исходный код продукта, и все, что у вас есть, это JAR-файлы,затем JAR-файлы (которые на самом деле являются ZIP-файлами с другим файловым суффиксом и определенным видом «манифеста») должны содержать набор файлов с файловым суффиксом «.java».Вы должны быть в состоянии проверить это, используя любой инструмент ZIP архива.

Если в JAR нет файлов ".java" (например, только много ".class" и других файлов), у вас нетисходный код продукта.Внесение изменений будет действительно очень сложным , учитывая, что вы не являетесь Java-разработчиком.

Предполагая, что вы делаете это законно (т.е. с явного или неявного разрешения разработчика продукта), высэкономит много времени, если вы сможете также получить инструкции по сборке продукта.Например, если он собран с использованием Ant, вы хотите файл (ы) build.xml.

9 голосов
/ 03 июля 2010

Jar-файл аналогичен zip-файлу, поэтому он может содержать или не содержать исходный код, необходимый для разработки. Вы можете прочитать о jar-файлах здесь .

5 голосов
/ 03 июля 2010

Обычно вы упаковываете файлы .class (скомпилированные) и распространяете их в файлах .jar, но можно поместить любой тип файла (включая исходный код) в архив .jar. Если вам нужно изменить код в библиотеке, вам нужно увидеть исходный код.

Также возможно, что файлы .jar в вашем проекте являются сторонними (или внутренними проприетарными) библиотеками, которые вам вообще не нужно менять. Весьма распространено включать библиотеки, которые вы просто используете, без изменения в вашем банке. Если остальная часть кода вашего приложения доступна, вы можете просто изменить это, не касаясь кода библиотеки.

2 голосов
/ 03 июля 2010

Любая современная Java IDE позволяет вам вставлять файлы JAR и использовать их в качестве кода библиотеки. Для этого не требуется исходный код и т. Д. Затем можно разработать новый код, включающий изменения.

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

Если у вас нет исходного кода и вам нужно изменить класс, вы можете декомпилировать этот класс, например, с помощью. JAD в файл Java (будьте осторожны, могут содержать ошибки), а затем работайте с этим. Вам просто нужно иметь этот класс перед jar в пути к классам (если только jar не запечатан, и тогда у вас есть совершенно новый вопрос для stackoverflow).

Есть ли в вашей команде более опытные программисты на Java, вы можете обратиться за помощью?

0 голосов
/ 03 июля 2010

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

jar-файлы могут помочь вам, если они содержат некоторые библиотеки / пакеты / классы, которые вы считаете необходимыми для проект, над которым вы работаете. Таким образом, вы можете добавьте их в путь компиляции, если вы используете IDE NetBeans и использовать их, даже не заглядывая в источник. Однако это будет работать лучше всего, если вы делаете какое-то постепенное развитие вашего проекта. Итак, это сильно зависит от того, как вы строите программное обеспечение, т.е. оно является инкрементным или, может быть, вы захотите изменить то, что вы получили ... для последнего вы, возможно, рассмотреть возможность декомпиляции или запросить исходный код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...