Package: javatools
Overview of python-javatoolsApythonmodule for unpacking and inspectingJavaClass files,
JARs, and collections of either. Supporting features up to JDK 8.It can do deep checking of classes to perform comparisons of
functionality, and output reports in multiple formats.python-javatools on GitHubpython-javatools on PyPIIf you have suggestions, please use theissue trackeron github. Or
heck, just fork it!RequirementsPython2.7, 3.7, 3.8, 3.9, 3.10, 3.11SetuptoolsSixCheetah3is used in the generation of HTML reportsM2Crypto(optional) is used for cryptographic operationsIn addition, the following tools are used in building and testing the
project.ToxGNU MakeFlake8All of these packages are available in most linux distributions
(eg. Fedora), and for OSX viaMacPortsandHomeBrew, or available
directly from pip.M2Crypto can be difficult on some platforms, and so is set as an
optional dependency. If an execution path attempts to perform an
action which requires M2Crypto (primarily Jar signing and Jar
signature verification), then aCryptoDisabledexception will be
raised, or a message will be printed to stdout explaining that the
feature is unavailable. See theM2Crypto Install Guidefor
workarounds in your environment.BuildingThis module usessetuptools, so running the following will build the
project:python setup.py buildto install, run:python -m pip install . --userTestingTests are written asunittesttest cases. If you'd like to run the tests,
simply invoke:python setup.py testor invoke tests across a wider range of platforms viatoxRPMIf you'd prefer to build an RPM, see the wiki entry forBuilding as an RPM.Javatools Scriptsclassinfo - similar to the javap utility included with most
JVMs. Also does provides/requires tracking.classdiff - attempts to find differences between two Java class
filesjarinfo - prints information about a JAR. Also does
provides/requires tracking.jardiff - prints the deltas between the contents of a JAR, and runs
classdiff on differing Java class files contained in the JARsjarutil - creates and signs JARs, verifies JAR signaturesmanifest - creates and queries JAR manifestsdistinfo - prints information about a mixed multi-jar/class
distribution, such as provides/requires lists.distdiff - attempts to find differences between two distributions,
deep-checking any JARs or Java class files found in either
directory.Additional ReferencesOracle's Java Virtual Machine SpecificationChapter 4 "The class File Format"Java Archive (JAR) FilesContactAuthor: Christopher O'Brienobriencj@gmail.comIf you're interested in my other projects, feel free to visitmy blog.Original Git Repository:https://github.com/obriencj/python-javatoolsLicenseThis library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 3 of the
License, or (at your option) any later version.This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.You should have received a copy of the GNU Lesser General Public
License along with this library; if not, seehttp://www.gnu.org/licenses/.