Coder Social home page Coder Social logo

devendor / decompile-and-attach Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bduisenov/decompile-and-attach

14.0 2.0 5.0 3.47 MB

(Intellij) decompiles jar library and attaches sources to current project

License: MIT License

Java 100.00%

decompile-and-attach's Introduction

Decompile and Attach

IntelliJ java IDE plugin for bulk decompile of jars.

Creator

Babur

Upstream

babur/decompile-and-attach

Maintainer

rferguson

Links

Source | Distribution | Issues | Documentation

Details

A rework of the original decompile and attach plugin for IntelliJ IDEA provided by Babur for compatibility with current versions of IntelliJ idea.

Decompile and attach decompiles jar packages using Intellij's Fernflower decompiler and attaches decompiled source jars to your project within intellij java ides.

The decompiled source is included within Search Scopes or can be unpacked and analyzed however you wish.

Select one or more jar files in the project menu. Then right click and select the "Decompile And Attach" action.

Check your event log for warnings. Failure to decompile will log a warning and continue to the next jar.

Don't expect perfection. It's a good decompiler, but can't reproduce original source code.

Changlog

1.8.4 rferguson 12/03/2018 * rebuilt for 2018.3

1.8.2 rferguson 09/22/2018

  • Added java-decompiler plugin dependency to build.gradle plugin.xml.
  • BugFix - Prior release would blindly produce empty classes with "{ //compiled content" bodies when decompile and attach was used before any other decompile activity that triggered legal terms acceptance and related key setting. Plugin now reproduced legal disclaimer from java-decompiler when needed and sets acceptance key to fix bug.

1.8.1 rferguson 09/04/2018

  • Documentation is prettier.

1.8 rferguson 09/03/2018

  • Moved plugin to com.devendortech namespace.
  • Updated for compatibility with IU-182.4129.33
  • Add try / catch so decompile logs warning and continues when something doesn't decompile.
  • Transitioned to gradle plugin dev framework.
  • Releasing to IntelliJ as the original author has abandoned his project.

1.7 rferguson 11/9/2017

  • Fix for idea 172 builds
  • plugin.xml in 1.6 excludes support for 2017.2 releases. 1.5 allows it but doesn't work change to plugin.xml to allow this to install on newer release
  • The file list included the jar name itself which was passing through to attach and causing an fault
  • An empty directory would pass through to decompile and cause a fault.
  • Any non-class files were excluded from source export jars which limited context like reflections and packages.
  • The above covers issues 9, 10, 12 and 13 from Babur's github issues

1.6 babur 12/03/2016

  • fixed plugin for Intellij 163

1.5 babur 12/1/2015

  • jar decompilation continues even if decompilation for some classes failed
  • added multiple jars decompilation
  • added cancellation for process
  • added form for selecting folder where sources would be stored
  • switched from BYTECODE_SOURCE_MAPPING to USE_DEBUG_LINE_NUMBERS for decompiler fix. See #6 from Babur's github issues.

1.4 babur 11/27/2015

  • decompiled sources are attached to source jar lib instead of creating a new lib

1.3 11/23/2015 babur

  • added functionality for attaching decompiled sources to owner module of a jar

1.2 11/18/2015

  • fixed jar archive generation.

1.1 11/17.2015

  • fixes

decompile-and-attach's People

Contributors

bduisenov avatar devendor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

decompile-and-attach's Issues

Doesn't decompile in IDEA 2018.3.3

java.lang.RuntimeException: java.lang.IllegalStateException: could not find library in module dependencies at com.intellij.openapi.application.impl.LaterInvocator.invokeAndWait(LaterInvocator.java:179) at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:678) at com.devendortech.intellij.plugin.decompile.DecompileAndAttachAction.attach(DecompileAndAttachAction.java:202) at com.devendortech.intellij.plugin.decompile.DecompileAndAttachAction.process(DecompileAndAttachAction.java:177) at com.devendortech.intellij.plugin.decompile.DecompileAndAttachAction.access$000(DecompileAndAttachAction.java:56) at com.devendortech.intellij.plugin.decompile.DecompileAndAttachAction$1.lambda$run$1(DecompileAndAttachAction.java:129) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at com.devendortech.intellij.plugin.decompile.DecompileAndAttachAction$1.run(DecompileAndAttachAction.java:128) at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:727) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:582) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:87) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151) at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:403) at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalStateException: could not find library in module dependencies at com.google.common.base.Preconditions.checkState(Preconditions.java:507) at com.devendortech.intellij.plugin.decompile.DecompileAndAttachAction.lambda$null$1(DecompileAndAttachAction.java:215) at com.intellij.openapi.command.WriteCommandAction$BuilderImpl$1.run(WriteCommandAction.java:124) at com.intellij.openapi.application.RunResult.run(RunResult.java:35) at com.intellij.openapi.command.WriteCommandAction.lambda$null$1(WriteCommandAction.java:264) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1057) at com.intellij.openapi.command.WriteCommandAction.lambda$performWriteCommandAction$2(WriteCommandAction.java:263) at com.intellij.openapi.command.WriteCommandAction.lambda$doExecuteCommand$4(WriteCommandAction.java:321) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:220) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:188) at com.intellij.openapi.command.WriteCommandAction.doExecuteCommand(WriteCommandAction.java:323) at com.intellij.openapi.command.WriteCommandAction.performWriteCommandAction(WriteCommandAction.java:262) at com.intellij.openapi.command.WriteCommandAction.execute(WriteCommandAction.java:244) at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:126) at com.devendortech.intellij.plugin.decompile.DecompileAndAttachAction.lambda$attach$2(DecompileAndAttachAction.java:208) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315) at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:156) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762) at java.awt.EventQueue.access$500(EventQueue.java:98) at java.awt.EventQueue$3.run(EventQueue.java:715) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:732) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:719) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:668) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.