jclasslib bytecode editor is a tool that visualizes all aspects of compiled Java class files and the contained bytecode.

Overview

jclasslib bytecode editor

Download

Installers can be downloaded from the releases section.

Purpose

jclasslib bytecode editor is a tool that visualizes all aspects of compiled Java class files and the contained bytecode. Many aspects of class files can be edited in the UI. In addition, it contains a library that enables developers to read and write Java class files and bytecode.

Main window

Editing

All constant pool entries can be edited. Referenced constant pool entries can directly be edited from the context menu that is shown by the "Edit" button of attributes and constant pool entries.

Editing

Bytecode instructions can be edited from the context menu:

Editing bytecode instructions

UI

Dark mode can be enabled persistently by selecting "File->Dark mode" in the main menu.

Dark mode

Several localizations are available and can be chosen in the UI:

i18n

IntelliJ IDEA plugin

There is a plugin for IntelliJ IDEA that can be installed via the plugin manager. The action in the "View menu" can be invoked when a Java, Groovy or Kotlin file is open in the editor.

IntelliJ IDEA action

The bytecode will be shown in the "jclasslib" tool window on the right hand side. Multiple class files can be open at the same time.

IntelliJ IDEA action

License

jclasslib bytecode editor is released under the GPL, Version 2.0.

Comments
  • Font size in `bytecode` tab is too small

    Font size in `bytecode` tab is too small

    screenshot_2

    As above, font size is so small that text is not readable (on screen with high pixel density such as mine). Maybe change default font size or add an option to adjust it yourself?

    opened by kjarosh 9
  • Allow editing

    Allow editing

    It would be really awesome if jclasslib (actually the IJ plugin in my case) would allow editing of bytecode and then saving as class file like CafeBabe used to support.

    feature 
    opened by Vampire 5
  • IDEA plugin doesn't handle class files opened directly

    IDEA plugin doesn't handle class files opened directly

    IDEA supports opening .class files directly (and decompiles them using Fernflower). The built-in bytecode viewer has no problem viewing the bytecode for such files.

    However, attempting to view them using the jclasslib plugin results in an error dialog: "Class file could not be found: ". It would be really nice to be able to view those using jclasslib from within the IDE.

    My use case is class files generated by a build task - they are not part of the project, nor do they have a corresponding source file in the project.

    opened by Zastai 5
  • I can not use this plugin in my IDEA,what should I do?

    I can not use this plugin in my IDEA,what should I do?

    I can download this plug-in, but my idea does not display restart. After I restart, there is no show related menu in the view. My idea version is version 2020. I downloaded version 2020 on the official website and put it in the local plugin folder, but it is still invalid. Are there other configuration solutions to enable my plug-in to start?

    opened by CandyKIng1991 4
  • the newest IntelJ IDEA doesn't support the plugin

    the newest IntelJ IDEA doesn't support the plugin

    I found the plugin of jclasslib in JetBrain Plugin website.

    https://plugins.jetbrains.com/plugin/9248-jclasslib-bytecode-viewer

    but when I download the latest plugin, and install from disk, the IntelJ IDEA tell me that it doesn't support this plugin.

    image

    hope you can fix it ASAP, thanks for ur contribution.

    opened by chenyurong 4
  • Startup Error

    Startup Error

    I am experiencing the following error directly at the startup: image

    I am using Oracle's JDK in version 1.8.0_111 on macOS 10.13.

    Clicking "OK" results in closing jclasslib, just leaving the window open works fine but doesn't look nice :)

    opened by FlorianLoch 3
  • Suggest to default open

    Suggest to default open "General Information" in tab viewer after class file loaded

    Previous version of jclasslib just has this behavior, which is very convenient to user, so suggest also add this feature to latest 5.0 version of jclasslib.

    Thanks for this useful tool.

    Regards, Tao

    opened by iamzhout 3
  • IDEA 2022.1 error, How to solve it?

    IDEA 2022.1 error, How to solve it?

    com.intellij.diagnostic.PluginException: Cannot load class org.gjt.jclasslib.idea.BytecodeToolWindowPanel ( error: org/gjt/jclasslib/browser/BrowserServices, classLoader=PluginClassLoader(plugin=PluginDescriptor(name=jclasslib Bytecode Viewer, id=jclasslib, descriptorPath=plugin.xml, path=D:\Program Files\JetBrains\Toolbox\apps\IDEA-U\ch-0\221.5080.210.plugins\idea-6.0.4.jar, version=6.0.4, package=null, isBundled=false), packagePrefix=null, instanceId=222, state=active) ) at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:412) at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.java:240) at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:212) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at org.gjt.jclasslib.idea.ToolWindowKt.showClassFile(ToolWindow.kt:65) at org.gjt.jclasslib.idea.ClassFileLocationKt$openClassFile$1.onSuccess(ClassFileLocation.kt:67) at com.intellij.openapi.progress.impl.CoreProgressManager.finishTask(CoreProgressManager.java:585) at com.intellij.openapi.progress.impl.ProgressManagerImpl.finishTask(ProgressManagerImpl.java:155) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:508) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:215) at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22) at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:197) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873) at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:511) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:69) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:112) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:803) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92) Caused by: java.lang.NoClassDefFoundError: org/gjt/jclasslib/browser/BrowserServices at java.base/java.lang.ClassLoader.defineClass2(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1109) at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:263) at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:111) at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:63) at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:246) at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:179) at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:404) ... 39 more Caused by: java.lang.ClassNotFoundException: org.gjt.jclasslib.browser.BrowserServices PluginClassLoader(plugin=PluginDescriptor(name=jclasslib Bytecode Viewer, id=jclasslib, descriptorPath=plugin.xml, path=D:\Program Files\JetBrains\Toolbox\apps\IDEA-U\ch-0\221.5080.210.plugins\idea-6.0.4.jar, version=6.0.4, package=null, isBundled=false), packagePrefix=null, instanceId=222, state=active) at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:215) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 47 more

    opened by zs66 2
  • com.intellij.diagnostic.PluginException

    com.intellij.diagnostic.PluginException

    com.intellij.diagnostic.PluginException: Do not use toolWindow.setAvailable() as part of ToolWindowFactory.init().
    Use ToolWindowFactory.shouldBeAvailable() instead. [Plugin: jclasslib]
    	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.registerToolWindow$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:991)
    	at com.intellij.toolWindow.ToolWindowSetInitializer.createAndLayoutToolWindows(ToolWindowSetInitializer.kt:188)
    	at com.intellij.toolWindow.ToolWindowSetInitializer.access$createAndLayoutToolWindows(ToolWindowSetInitializer.kt:83)
    	at com.intellij.toolWindow.ToolWindowSetInitializer$initUi$1.accept(ToolWindowSetInitializer.kt:147)
    	at com.intellij.toolWindow.ToolWindowSetInitializer$initUi$1.accept(ToolWindowSetInitializer.kt:83)
    	at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
    	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
    	at com.intellij.toolWindow.ToolWindowSetInitializer$initUi$2.execute(ToolWindowSetInitializer.kt:156)
    	at java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:750)
    	at java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731)
    	at java.base/java.util.concurrent.CompletableFuture.thenAcceptAsync(CompletableFuture.java:2117)
    	at com.intellij.toolWindow.ToolWindowSetInitializer.initUi(ToolWindowSetInitializer.kt:141)
    	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doInit(ToolWindowManagerImpl.kt:446)
    	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.init(ToolWindowManagerImpl.kt:419)
    	at com.intellij.toolWindow.InitToolWindowSetActivity$runActivity$2.run(ToolWindowSetInitializer.kt:72)
    	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:215)
    	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22)
    	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:197)
    	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873)
    	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:511)
    	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:69)
    	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:112)
    	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)
    	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
    	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    	at java.base/java.security.AccessController.doPrivileged(Native Method)
    	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
    	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)
    	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746)
    	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:803)
    	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
    	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
    	at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
    	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
    	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873)
    	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)
    	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
    Caused by: java.lang.IllegalStateException: Do not use toolWindow.setAvailable() as part of ToolWindowFactory.init().
    Use ToolWindowFactory.shouldBeAvailable() instead.
    	at com.intellij.openapi.wm.impl.ToolWindowImpl.setAvailable(ToolWindowImpl.kt:353)
    	at com.intellij.ide.impl.ContentManagerWatcher.watchContentManager(ContentManagerWatcher.java:23)
    	at org.gjt.jclasslib.idea.ByteCodeToolWindowFactory.createToolWindowContent(ToolWindow.kt:181)
    	at com.intellij.openapi.wm.impl.ToolWindowImpl.createContentIfNeeded$intellij_platform_ide_impl(ToolWindowImpl.kt:528)
    	at com.intellij.openapi.wm.impl.ToolWindowImpl.getContentManager(ToolWindowImpl.kt:404)
    	at org.gjt.jclasslib.idea.ToolWindowKt.addInfoPanel(ToolWindow.kt:173)
    	at org.gjt.jclasslib.idea.ToolWindowKt.access$addInfoPanel(ToolWindow.kt:1)
    	at org.gjt.jclasslib.idea.ByteCodeToolWindowFactory.init(ToolWindow.kt:186)
    	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.registerToolWindow$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:988)
    	... 45 more
    
    
    opened by qq517634644 2
  • IntelliJ IDEA 2022.1 EAP complaining

    IntelliJ IDEA 2022.1 EAP complaining

    Every once in a while (haven't figured out what causes this exactly. However, it seems to have to do with switching projects and opening IntelliJ), IntelliJ shows this error:

    com.intellij.diagnostic.PluginException: Do not use toolWindow.setAvailable() as part of ToolWindowFactory.init().
    Use ToolWindowFactory.shouldBeAvailable() instead. [Plugin: jclasslib]
    	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.registerToolWindow$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:991)
    	at com.intellij.toolWindow.ToolWindowSetInitializer.createAndLayoutToolWindows(ToolWindowSetInitializer.kt:186)
    	at com.intellij.toolWindow.ToolWindowSetInitializer.access$createAndLayoutToolWindows(ToolWindowSetInitializer.kt:83)
    	at com.intellij.toolWindow.ToolWindowSetInitializer$initUi$1.accept(ToolWindowSetInitializer.kt:147)
    	at com.intellij.toolWindow.ToolWindowSetInitializer$initUi$1.accept(ToolWindowSetInitializer.kt:83)
    	at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
    	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
    	at com.intellij.toolWindow.ToolWindowSetInitializer$initUi$2.execute(ToolWindowSetInitializer.kt:154)
    	at java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:750)
    	at java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731)
    	at java.base/java.util.concurrent.CompletableFuture.thenAcceptAsync(CompletableFuture.java:2117)
    	at com.intellij.toolWindow.ToolWindowSetInitializer.initUi(ToolWindowSetInitializer.kt:141)
    	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doInit(ToolWindowManagerImpl.kt:446)
    	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.init(ToolWindowManagerImpl.kt:419)
    	at com.intellij.toolWindow.InitToolWindowSetActivity$runActivity$2.run(ToolWindowSetInitializer.kt:72)
    	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:215)
    	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22)
    	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:197)
    	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873)
    	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:511)
    	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:69)
    	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:112)
    	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)
    	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
    	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    	at java.base/java.security.AccessController.doPrivileged(Native Method)
    	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
    	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)
    	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746)
    	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:803)
    	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
    	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
    	at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
    	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
    	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873)
    	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)
    	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
    Caused by: java.lang.IllegalStateException: Do not use toolWindow.setAvailable() as part of ToolWindowFactory.init().
    Use ToolWindowFactory.shouldBeAvailable() instead.
    	at com.intellij.openapi.wm.impl.ToolWindowImpl.setAvailable(ToolWindowImpl.kt:353)
    	at com.intellij.ide.impl.ContentManagerWatcher.watchContentManager(ContentManagerWatcher.java:23)
    	at org.gjt.jclasslib.idea.ByteCodeToolWindowFactory.createToolWindowContent(ToolWindow.kt:181)
    	at com.intellij.openapi.wm.impl.ToolWindowImpl.createContentIfNeeded$intellij_platform_ide_impl(ToolWindowImpl.kt:528)
    	at com.intellij.openapi.wm.impl.ToolWindowImpl.getContentManager(ToolWindowImpl.kt:404)
    	at org.gjt.jclasslib.idea.ToolWindowKt.addInfoPanel(ToolWindow.kt:173)
    	at org.gjt.jclasslib.idea.ToolWindowKt.access$addInfoPanel(ToolWindow.kt:1)
    	at org.gjt.jclasslib.idea.ByteCodeToolWindowFactory.init(ToolWindow.kt:186)
    	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.registerToolWindow$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:988)
    	... 45 more
    
    opened by ThexXTURBOXx 2
  • disorderly code

    disorderly code

    How to set encoding of jclasslib?

    operating system :macOS Big Sur 11.2 java :1.8.0_112 idea :ULTIMATE 2019.3 jclasslib Bytecode Viewer plugin: file encode :UTF-8 location :china

    image
    opened by lakeslove 2
  • Const+

    Const+

    There have a way to add constants directly from a "notepad"? such as modifying methods you set up, it would be nice to have something similar, but setting each constant line by line, to add everything one by one for "big projects"

    opened by Kaiox 0
  • Localizations wanted

    Localizations wanted

    Currently, jclasslib is localized into German, Simplified Chinese and Polish.

    I'm looking for further localizations. If you are interested, please comment on this issue.

    The localization process is as follows:

    1. Copy the file Browser.properties to Browser_zh_CN.properties, with the appropriate locale code in the file name.
    2. Translate all messages in the copied file. The following rules apply:
      • Placeholders like {0} must be preserved.
      • Directives in placeholders like {0,number,integer} must not be translated.
      • For choice formats like {0,choice,1#class was|1<classes were}, the numbers describe limits for the associated numerical placeholder and the text after the # characters must be translated to form grammatically correct sentences.
      • Messages starting with key. include technical terms that may not have to be fully translated.
      • Line break characters \n should be included in the same place and frequency in the translated message.
      • Messages that end with a colon : are located before a UI element. In the translation, add an appropriate character (or none) for all messages consistently.
    3. Add an enum constant in the SupportedLocale class for the new locale.
    4. Test by running the bytecode viewer run configuration in IntelliJ IDEA.
    5. Send me a pull request

    Thank you! :green_heart:

    Help wanted 
    opened by ingokegel 4
Releases(6.0.4)
Owner
Ingo Kegel
Co-founder of ej-technologies
Ingo Kegel
CLI tool for decompiling Android apps to Java. It does resources! It does Java! Its real easy!

Easy-as-pie Android Decompiler Why One stop shop I got pretty tired of decompiling Android apps with a bunch of steps that I had to remember all the t

Alex Davis 619 Dec 27, 2022
An advanced DEX editor for Android.

Dexter A WIP DEX editor (hence the name Dexter) for Android that uses Smali. Available decompilers JADX Fernflower CFR JD-Core Procyon TO-DO Implement

Mike Anderson 72 Dec 23, 2022
A program analysis tool to find cryptographic misuse in Java and Android.

A program analysis tool to find cryptographic misuse in Java and Android.

null 92 Dec 15, 2022
BlackDex is an Android unpack tool, it supports Android 5.0~12 and need not rely to any environment. BlackDex can run on any Android mobile phones or emulators, you can unpack APK File in several seconds.

BlackDex is an Android unpack tool, it supports Android 5.0~12 and need not rely to any environment. BlackDex can run on any Android mobile phones or emulators, you can unpack APK File in several seconds.

null 4.3k Jan 2, 2023
A tool translate a apk file to stantard android project include so hook api and il2cpp c++ scaffolding when apk is a unity il2cpp game. Write code on a apk file elegantly.

FakerAndroid (FakerAndroid.jar or FakerAndroid-AS) A tool translate a apk file to stantard android project include so hook api and il2cpp c++ scaffold

null 231 Dec 29, 2022
A simple text encryption/decryption password based GUI+CLI tool

ZeText: Zero disk exposition texts This is a simple text encryption/decryption password based GUI+CLI tool, allowing to enter, edit and decrypt files

sergeych 0 Dec 21, 2021
XDROID is android all in one hack tools

XDROID XDroid Android HackingTools Legal Disclamer: The author does not hold any responsibility for the bad use of this tool, remember this is only fo

Davlix 16 May 9, 2022
Grab’n Run, a simple and effective Java Library for Android projects to secure dynamic code loading.

Grab’n Run, a simple and effective Java Library for Android projects to secure dynamic code loading.

Luca Falsina 418 Dec 29, 2022
A Java ePub reader and parser framework for Android.

FolioReader-Android is an EPUB reader written in Java and Kotlin. Features Custom Fonts Custom Text Size Themes / Day mode / Night mode Text Highlight

FolioReader 2.1k Jan 3, 2023
CRYLOGGER: Detecting Crypto Misuses for Android and Java Apps Dynamically

CRYLOGGER: Detecting Crypto Misuses for Android and Java Apps Dynamically

Luca Piccolboni 139 Dec 12, 2022
Signal Protocol library for Java/Android

Overview A ratcheting forward secrecy protocol that works in synchronous and asynchronous messaging environments. PreKeys This protocol uses a concept

Signal 1.8k Dec 24, 2022
TweetNaCl in Java - a port of TweetNaCl-js

TweetNacl in Java: port of tweetnacl-js API/Usage Suggest always use TweetNaclFast implementation Public key authenticated encryption get key pair: Bo

AppNet.Link 40 Nov 10, 2022
Dex to Java decompiler

JADX jadx - Dex to Java decompiler Command line and GUI tools for producing Java source code from Android Dex and Apk files Main features: decompile D

null 32.8k Jan 2, 2023
Analyze any Android/Java based app or game

ClassyShark Introduction ClassyShark is a standalone binary inspection tool for Android developers. It can reliably browse any Android executable and

Google 7.2k Jan 3, 2023
Appdbg - make it possible to run android dex file in original Java Virtual Machine

Appdbg - make it possible to run android dex file in original Java Virtual Machine

null 137 Dec 20, 2022
A RSA Cipher implementation for Kotlin/Java

A RSA Cipher implementation for Kotlin/Java.

Lyzev 3 Aug 22, 2022
Soot - A Java optimization framework

Using Soot? Let us know about it! We are regularly applying for funding to help us maintain Soot. You can help us immensely by letting us know about p

Soot Program Analysis Framework 2.5k Jan 2, 2023
Smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation

About smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The syntax is loosely based on

Ben Gruver 5.7k Dec 27, 2022
Find Security Bugs is the SpotBugs plugin for security audits of Java web applications

The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects)

OWASP Find Security Bugs 2k Jan 6, 2023