jd-core-java icon indicating copy to clipboard operation
jd-core-java copied to clipboard

No support for .war files or single .class files

Open floyd-fuh opened this issue 10 years ago • 2 comments

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.

floyd-fuh avatar Oct 29 '15 12:10 floyd-fuh

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

MarcMil avatar Dec 04 '15 13:12 MarcMil

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

soumali avatar Jun 20 '16 10:06 soumali