{"id":16602818,"url":"https://github.com/borisbrodski/sevenzipjbinding","last_synced_at":"2025-04-09T14:12:38.088Z","repository":{"id":734706,"uuid":"384527","full_name":"borisbrodski/sevenzipjbinding","owner":"borisbrodski","description":"7-Zip-JBinding","archived":false,"fork":false,"pushed_at":"2023-09-29T20:58:47.000Z","size":39313,"stargazers_count":187,"open_issues_count":45,"forks_count":52,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-02T08:48:48.303Z","etag":null,"topics":["c-plus-plus","compression","java","open-source"],"latest_commit_sha":null,"homepage":"http://sevenzipjbind.sourceforge.net/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/borisbrodski.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"borisbrodski","custom":["https://www.paypal.me/borisbrodski"]}},"created_at":"2009-11-24T23:25:22.000Z","updated_at":"2025-03-30T09:30:17.000Z","dependencies_parsed_at":"2023-10-20T18:34:44.456Z","dependency_job_id":null,"html_url":"https://github.com/borisbrodski/sevenzipjbinding","commit_stats":{"total_commits":787,"total_committers":15,"mean_commits":52.46666666666667,"dds":"0.23761118170266837","last_synced_commit":"ee026014747df13cb80f30e38135d802708cb8bc"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisbrodski%2Fsevenzipjbinding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisbrodski%2Fsevenzipjbinding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisbrodski%2Fsevenzipjbinding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisbrodski%2Fsevenzipjbinding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/borisbrodski","download_url":"https://codeload.github.com/borisbrodski/sevenzipjbinding/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248054195,"owners_count":21039952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","compression","java","open-source"],"created_at":"2024-10-12T00:24:01.277Z","updated_at":"2025-04-09T14:12:38.054Z","avatar_url":"https://github.com/borisbrodski.png","language":"C++","funding_links":["https://github.com/sponsors/borisbrodski","https://www.paypal.me/borisbrodski"],"categories":[],"sub_categories":[],"readme":"--- Welcome to 7-Zip-JBinding README file ---\n\n7-Zip-JBinding is a free cross-platform java binding of 7-Zip free compress/decompress library\n(http://www.7-zip.org/, http://p7zip.sourceforge.net/)\n\n\nContent\n-------\n\n1. License Info\n2. GNU LGPL information\n3. License notes\n4. Documentation\n5. Version number guide lines\n6. Compile\n6.1 Compile on Linux\n6.2 Compile on Windows\n7. Developer notes\n7.1 Applying new 7-Zip release\n\n1. License Info\n---------------\n\n7-Zip-JBinding and 7-Zip/p7zip binaries are licensed under GNU LGPL.\nFor more information about 7-Zip source code licenses please see\n7-Zip read me file. For more information about p7zip source code\nplease see p7zip read me file.\n\n\n2. GNU LGPL information\n-----------------------\n\nThis library is free software; you can redistribute it and/or\nmodify it under the terms of the GNU Lesser General Public\nLicense as published by the Free Software Foundation; either\nversion 2.1 of the License, or (at your option) any later version.\n\nThis library is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this library; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n\n\n3. License notes\n----------------\n\nYou can support development of 7-Zip by registering.\n\n7-Zip/p7zip/7-Zip-JBinding is free software distributed under the GNU LGPL.\nIf you need license with other conditions, write to\nhttp://www.7-zip.org/support.html\n\n\n6. Documentation\n----------------\n\nThe documentation provided in multiple ways:\n\n- ReleaseNotes.txt\n  Summary of the included features. Found in each distribution and online (http://sevenzipjbind.sourceforge.net/)\n\n- Small introduction + collection of code snippets\n  Online: http://sevenzipjbind.sourceforge.net/first_steps.html\n  Also a copy of the archived web page is included in each distribution (website.zip)\n  \n\n- JavaDoc\n  Provided as a seperate archive within each distribution (javadoc.zip)\n  Also JavaDoc is included in both archived web page within the distribution (website.zip) and online\n\n\n\n5. Version number guide lines\n-----------------------------\n\nThe scheme for the 7-Zip-JBinding version numbers is:\n\n    \u003c7-Zip/p7zip version\u003e - \u003c7-Zip-JBinding major version\u003e.\u003c7-Zip-JBinding minor version\u003e\u003crelease stage\u003e\u003cimpl. stage\u003e\n\n7-Zip/p7zip version - version of the underlying 7-Zip and p7zip libraries.\n\n7-Zip-JBinding major version - major version of 7-Zip-JBinding base on the specified 7-Zip/p7zip version, beginning from 1 \n7-Zip-JBinding minor version - major version of 7-Zip-JBinding base on the specified 7-Zip/p7zip version, beginning from 0\n\nrelease stage:\n    - 'alpha'       - alpha release: substantial part of the functionality included, not stable. For testing purposes only.\n    - 'rc' / 'beta' - release candidate: all functionality included, not tested enough to be considered stable. Use with care.\n    - ''            - release considered stable. For generally use.\n    \nimpl stage: (implementation stage)\n    Optional. Information about implemented and not implemented features.\n    - '-extr-only' - compression features are not included. \n\nExamples:\n     4.65-1.0alpha      - Alpha release of 7-Zip-JBinding version 1.0 based on 7-Zip/p7zip version 4.65\n     4.66-1.01rc        - Release candidate of 7-Zip-JBinding version 1.1 based on 7-Zip/p7zip version 4.66\n     4.66-1.01beta      - Release candidate of 7-Zip-JBinding version 1.1 based on 7-Zip/p7zip version 4.66\n     4.66-2.3-extr-only - Stable release of 7-Zip-JBinding version 2.3 based on 7-Zip/p7zip version 4.66\n                          without compression features.\n     4.66-2.3           - Stable release of 7-Zip-JBinding version 2.3 based on 7-Zip/p7zip version 4.66\n\n\n6. Compile\n----------\n\nPlease note, you will need a source code distribution to compile 7-Zip-JBinding.\n\nHint: for more examples how to compile 7-Zip-JBinding see \"\u003cgit-root\u003e/scripts\" directory (https://github.com/borisbrodski/sevenzipjbinding/tree/master/scripts) \n\n6.1 Compile on Linux\n\na) Download source package from http://sourceforge.net/projects/sevenzipjbind/files/\n   and extract it into some \u003csrcdir\u003e directory. Try to avoid directory names with spaces in your path.\n\n   Optionally you can checkout a master (current development version) from GIT repository \n    $ git clone git://sevenzipjbind.git.sourceforge.net/gitroot/sevenzipjbind/sevenzipjbind SevenZipJBinding\n    or\n    $ git clone https://github.com/borisbrodski/sevenzipjbinding.git SevenZipJBinding\n\n    $ cd SevenZipJBinding\n    $ git checkout Release-4.65-1.02rc-extr-only\n\nb) You will need the CMake (2.6 or higher) to configure 7-Zip-JBinding for your system.\n   You can check the version of your CMake by typing:\n    $ cmake --version\n\n   If you don't have cmake installed or cmake version isn't sufficient you can download and install CMake from official\n   web site: http://www.cmake.org/\n \n   On Debian or Ubuntu Linux you can install cmake by typing\n    $ sudo apt-get install cmake\n\nc) The next step is to run CMake. Both in-source and out-of-source methods are supported. Here is example of in-source build:\n    $ cmake .\n\n   Where \u003csrcdir\u003e is a directory, where you extracted or checked out the source code.   \n   On some Linux distributions you will need to set JAVA_JDK cmake option to your Java JDK 1.5 or higher. You can use a GUI CMake\n   tool 'cmake-gui', edit 'CMakeCache.txt' file with your favorite text editor or just delete 'CMakeCache.txt' file\n   and restart CMake with a -DJAVA_JDK parameter:\n    $ cmake . -DJAVA_JDK=\u003cpath-to-jdk\u003e\n   \n   If everything goes right, you will get an overview of chosen tools and build options.\n\nd) Now type to compile 7-Zip-JBinding\n    $ make\n    \ne) After make succeeds either run tests by typing\n    $ ctest\n    or\n    $ ctest -D Experimental\n    to submit test results to the dashboard (http://my.cdash.org/index.php?project=7-Zip-JBinding)\n    \n    RUNTIME_JAVA_OPTS environment variable passes options to the test java process.\n    \n    Run tests in Verbose-Mode:\n        $ RUNTIME_JAVA_OPTS=\"-DTEST_TRACE=1\" ctest\n    \n    Run tests in specified profile\n        $ RUNTIME_JAVA_OPTS=\"-DTEST_PROFILE=MINIMAL\" ctest\n\n    For example, run tests on armel 256MB RAM architecture:\n        $ RUNTIME_JAVA_OPTS=\"-DTEST_ON_LOW_MEMORY=1\" ctest\n\n    To directly see the standard output of the running tests, use\n        $ RUNTIME_JAVA_OPTS=-DTEST_TRACE=true ctest -VV\n\n    To Run specified test first list all available tests with\n        $ ctest -N\n    then specify a range of tests to execute. The following will execute tests #2, #3, #4 and #5\n        $ ctest -I 2,5\n    \nf) Build a binary package by typing\n    $ make package\n    \ng) Running tests on a machine with low memory (like 256M on ARM armel):\n   - Add \"-DJAVA_PARAMS=-DTEST_ON_LOW_MEMORY=1\" to the cmake parameters\n     to skip most memory intensive tests (executed later by the ctest tool see (e) ).\n\n6.2 Compile on Windows\n    Both MinGW and Cygwin environments can be used to compile 7-Zip-JBinding. Using MinGW to compile 7-Zip-JBinding \n    is recommended and is much easier. The steps are:\n\na) Download and install MinGW from the official web site: http://www.mingw.org/\nb) Download and install CMake from the official web site: http://www.cmake.org/\nc) Download and extract 7-Zip-Binding source package from http://sourceforge.net/projects/sevenzipjbind/files/\nd) Open cmd console, go into the directory with extracted 7-Zip-Binding source and type  \n    D:\\...\u003e cmake -G\"MinGW Makefiles\" .\ne) Type\n    D:\\...\u003e mingw32-make.exe\nf) Type 'ctest' to run tests or 'mingw32-make.exe package' to build a binary package\n\n6.3 Compile with DockCross\n\nDockCross - cross compiling toolchains in Docker images: https://github.com/dockcross/dockcross\n\nDockCross allows easy cross-platform compilation for different Linux/Windows architectures, line Linux ARMv5 (armel), ARMv5 (armhf), ...\nTo compile 7-Zip-JBinding on Linux with DockCross:\n\na) Install DockCross according to installation instructions on the home page (https://github.com/dockcross/dockcross)\nb) Check out or copy 7-Zip-JBinding source code to your build directory\n    $ git clone https://github.com/borisbrodski/sevenzipjbinding.git SevenZipJBinding\nc) Copy JDK to your build directory to make it visible to the container.\n    $ cp -r \u003cmy-JDKs\u003e/jdk1.5.0_22 ./jdk1.5.0_22\n    (Mostly for jni.h and stuff. JDK must not match the target platform.)\nd) Define build command sequence, like this one:\n    $ CMD='\n        mkdir build ;\n        cd build ;\n        cmake ../SevenZipJBinding -DJAVA_SYSTEM=arm -DJAVA_ARCH=v6 -DCMAKE_BUILD_TYPE=Release -DJAVA_JDK=../jdk1.5.0_22/\n        make\n        make package\n    '\nc) Run build:\n    $ dockcross-linux-armv6 bash -c \"$CMD\"\nd) Unfortunately it's not possible to run the tests in the same way, unless your\n   host platform is compatible with the target platform.\n\n\nIf you have any troubles with 7-Zip-JBinding please, ask for help. Use forum or issue tracker on sourceforge:\nForum: http://sourceforge.net/forum/?group_id=210915\nTracker: http://sourceforge.net/tracker/?group_id=210915\n\n\n7 Developer notes\n\n7.1 Binding new 7-Zip release\n\nTODO describe this\n\n- In StringConvert.cpp\n  - Remove SystemStringToOemString() method\n- In StringConvert.h \n  - Remove SystemStringToOemString() method definition\n- Verify, that the implementations in\n  - PlatformMinGW/MyWindows.cpp\n  - PlatformMinGW/MyUser32.cpp\n  still match corresponding implementation in the p7zip\n\n\n\nHave fun!    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborisbrodski%2Fsevenzipjbinding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborisbrodski%2Fsevenzipjbinding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborisbrodski%2Fsevenzipjbinding/lists"}