{"id":13575685,"url":"https://github.com/Liubsyy/JarEditor","last_synced_at":"2025-04-04T22:31:52.338Z","repository":{"id":239303747,"uuid":"799158803","full_name":"Liubsyy/JarEditor","owner":"Liubsyy","description":"IDEA plugin for directly editing classes/resources in Jar without decompression. ","archived":false,"fork":false,"pushed_at":"2024-05-22T16:05:41.000Z","size":803,"stargazers_count":90,"open_issues_count":0,"forks_count":14,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-22T18:34:11.504Z","etag":null,"topics":["idea-plugin","jar"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Liubsyy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-11T10:31:17.000Z","updated_at":"2024-05-31T05:47:43.633Z","dependencies_parsed_at":"2024-05-14T14:01:33.207Z","dependency_job_id":"c6fbb6fb-a292-47ad-ab83-0d657f20570e","html_url":"https://github.com/Liubsyy/JarEditor","commit_stats":null,"previous_names":["liubsyy/jareditor"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liubsyy%2FJarEditor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liubsyy%2FJarEditor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liubsyy%2FJarEditor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Liubsyy%2FJarEditor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Liubsyy","download_url":"https://codeload.github.com/Liubsyy/JarEditor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247260802,"owners_count":20910078,"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":["idea-plugin","jar"],"created_at":"2024-08-01T15:01:03.279Z","updated_at":"2025-04-04T22:31:47.329Z","avatar_url":"https://github.com/Liubsyy.png","language":"Java","funding_links":[],"categories":["开发工具\u0026框架","Java"],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n  \u003cimg align=\"center\" src=\"./img/logo.png\" width=\"100\" height=\"100\" /\u003e\n\u003c/div\u003e\n\n\u003ch2 align=\"center\"\u003eJarEditor \u003csup\u003e\u003cem\u003eliubsyy\u003c/em\u003e\u003c/sup\u003e\u003c/h2\u003e\n\n\u003ch4 align=\"center\"\u003e\u003cstrong\u003eEnglish\u003c/strong\u003e | \u003ca href=\"./README_CN.md\"\u003e简体中文\u003c/a\u003e\u003c/h4\u003e\n\n[![License](https://img.shields.io/github/license/Liubsyy/JarEditor?color=blue)](./LICENSE)\n[![downloads](https://img.shields.io/jetbrains/plugin/d/24397)](https://plugins.jetbrains.com/plugin/24397-jareditor)\n[![release](https://img.shields.io/jetbrains/plugin/v/24397?label=version)](https://plugins.jetbrains.com/plugin/24397-jareditor)\n![sdk](https://img.shields.io/badge/plugin%20sdk-IDEA%202020.3-red.svg)\n\u003ca href=\"https://hellogithub.com/repository/03b39a2d1a55407797db59737724ce7c\" target=\"_blank\"\u003e\u003cimg src=\"https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=03b39a2d1a55407797db59737724ce7c\u0026claim_uid=iEnYZr4sASMjWJb\u0026theme=small\" alt=\"Featured｜HelloGitHub\" /\u003e\u003c/a\u003e\n\nIDEA plugin for modifying files in jar directly without decompression, including class and resource files.\n\n**Plugin marketplace** : [https://plugins.jetbrains.com/plugin/24397-jareditor](https://plugins.jetbrains.com/plugin/24397-jareditor)\n\n## Features\n- Edit class/resource file in jar directly without decompression\n- Add/Delete/Rename file/directory in jar\n- Search the contents of the jar package\n- Copy/Paste file/directory to/from clipboard\n- Support SpringBoot jar/Nested jar\n- Support kotlin\n- Export source jar\n- Support class bytes tool : javassist\n- Decompilers : Fernflower/CFR/Procyon\n\n\n\n## Quick start\n\n### 1. Install plugin from marketplace\nFirst install the plugin JarEditor from marketplace, IDEA at least version **2020.3**\n\n\u003cimg src=\"./img/JarEditor_install.png\" width=\"800\" height=\"606\" /\u003e\n\n\n### 2. Edit and Build Jar\nAfter installation , you can see a tab page to switch to Jar Editor in the .class decompiled file.\n\n\u003e **External jar** : File-\u003eProject Structure-\u003eLibraries-\u003eAdd Library , then you can see the decompiled jar.\u003cbr\u003e\n\u003e **Nested jar** : Right click on nested jar-\u003eJarEditor-\u003eStructure-\u003eExpand Nested Jar\n\n\u003cimg src=\"./img/JarEditor_main.png\" width=\"800\" height=\"506\" /\u003e\n\nAfter modification, click **Save(Compile)** to compile and save the currently modified java content. \n\nFinally click **Build Jar** to write the compiled and saved class file into the Jar package.\n\nModifying the resource files in the jar package is also supported.\n\nHere is an example:\n\n\u003cimg src=\"./img/JarEditor_demo.gif\"  width=\"800\" height=\"511\" /\u003e\n\n### 3. Class bytes tool\nFor obfuscated jars, the decompilation result is not satisfactory. In this case, you can use tools to directly modify the bytecode.\nClick the **Class bytes tool** icon to select the tool\n\n- **Javassist** : Field/method/constructor/static code can be modified/added/deleted (include inner class)\n\n\n\u003cimg src=\"./img/JarEditor_javassist.png\" width=\"800\" height=\"600\" /\u003e\n\n\n### 4. Other operations of JarEditor\nIn the project view of the jar package, right-click to see **JarEditor-\u003eNew/Delete** and other operations, where you can add/delete/rename/copy/paste/export files.\n\n\u003cimg src=\"./img/JarEditor_new_delete.png\" width=\"600\" height=\"550\" /\u003e\n\n\nClick the **Search** icon to search the contents of the jar package. If it is a class jar, it will be searched based on the decompiled content.\n\n\u003cimg src=\"./img/JarEditor_search.png\" width=\"600\" height=\"470\" /\u003e\n\n## Some mechanisms\n- The JDK that the compilation depends on is the JDK of your SDK list. You can choose SDK and target version of the compiled class.\n- The classpath you depend on when compiling java is the project's Libraries dependency. If the dependency package cannot be found, you can add Libraries(File-\u003eProject Structure-\u003eLibraries).\n- Save(Compile) will save the modified files to the subdirectory **jar_edit_out** of the directory where the jar package is located. Build Jar will incrementally write the modified files to jar, and finally delete this directory.\n\n\n### SDK Default Versions\n\nWhen compiling and selecting **SDK Default**, the runtime JDK (JBR) integrated by Jetbrains is used. If SDK Default is not selected, the JDK installed by the specific user will be used.\n\nIDEA|JDK\n---|---\nIDEA 2020.3 - IDEA 2022.1 |JBR JDK11\nIDEA 2022.2 - IDEA 2024.1 |JBR JDK17\nIDEA 2024.2 and later |JBR JDK21\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLiubsyy%2FJarEditor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLiubsyy%2FJarEditor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLiubsyy%2FJarEditor/lists"}