jd-core-java
jd-core-java copied to clipboard
No support for .war files or single .class files
First of all: Nice one, I like the tool.
I'm actually using this as one option for Java decompilation in https://github.com/floyd-fuh/crass
It seems the tool does not support .war files, although it's exactly the same as a .jar file and JD-GUI supports it too. As soon as I rename the .war file to .jar, everything works fine.
Additionally it would be very nice if this tool would support single class files.
How about if it would just check for the file extension of the input file and compare it to .class and if it's not .class it would treat it as a .jar file? Or a command line option would be fine as well.
Additionally it would be very nice if this tool would support single class files.
At least for that part, you can use my fork. It has that rather simple change. Instead of the output path, you supply the class name and it will return the decompiled code on stdout. https://github.com/MarcMil/jd-core-java
Not able to download native-lib Following exception: ] * Exception is: ] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':getNativeLibs'. ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) ] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) ] at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) ] at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) ] at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) ] at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) ] at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) ] at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) ] at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) ] at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289) ] at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) ] at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) ] at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) ] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) ] at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86) ] at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) ] at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) ] at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) ] at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67) ] at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) ] at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) ] at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54) ] at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166) ] at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113) ] at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81) ] at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64) ] at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) ] at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) ] at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35) ] at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) ] at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50) ] at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) ] at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201) ] at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174) ] at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170) ] at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139) ] at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) ] at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) ] at org.gradle.launcher.Main.doAction(Main.java:46) ] at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) ] at org.gradle.launcher.Main.main(Main.java:37) ] at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50) ] at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32) ] at org.gradle.launcher.GradleMain.main(GradleMain.java:23) ] at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30) ] at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127) ] at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:55) ] Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'hg'' ] at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:196) ] at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:325) ] at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:83) ] at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) ] Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'hg' ] at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27) ] at net.rubygrapefruit.platform.internal.WindowsProcessLauncher.start(WindowsProcessLauncher.java:22) ] at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36) ] at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:65) ] ... 1 more ] Caused by: java.io.IOException: Cannot run program "hg" (in directory "C:\Users\soumchat.ORADEV\Downloads\jd-core-java-master (4)\jd-core-java-master"): CreateProcess error=2, The system cannot find the file specified ] at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25) ] ... 4 more ] Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified