Convert Figma logo to code with AI

deathmarine logoLuyten

An Open Source Java Decompiler Gui for Procyon

4,990
993
4,990
178

Top Related Projects

40,878

Dex to Java decompiler

6,287

smali/baksmali

12,202

Tools to work with android .dex and java .class files

A Java 8+ Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More)

1,993

This is the public repository for the CFR Java decompiler

13,917

A standalone Java Decompiler GUI

Quick Overview

Luyten is an open-source Java decompiler and GUI for the Procyon decompiler. It allows users to decompile Java bytecode and view the resulting source code, making it a valuable tool for reverse engineering, code analysis, and debugging Java applications.

Pros

  • User-friendly GUI for easy navigation and decompilation of Java bytecode
  • Supports various input formats, including .class, .jar, and .zip files
  • Offers multiple output options, including saving decompiled source code and exporting as zip files
  • Includes features like syntax highlighting, search functionality, and theme customization

Cons

  • May produce less accurate results for heavily obfuscated or complex Java code
  • Depends on the Procyon decompiler, which may have its own limitations
  • Limited support for newer Java language features in some cases
  • Not actively maintained, with the last update being several years ago

Getting Started

To use Luyten, follow these steps:

  1. Download the latest release from the GitHub repository: https://github.com/deathmarine/Luyten/releases
  2. Extract the downloaded file
  3. Run the Luyten.jar file using Java:
java -jar Luyten.jar
  1. Use the File menu to open a .class, .jar, or .zip file for decompilation
  2. Navigate through the decompiled code using the tree view on the left
  3. Use the various options in the menu bar to customize the decompilation process and save the results

Note: Ensure you have Java installed on your system before running Luyten.

Competitor Comparisons

40,878

Dex to Java decompiler

Pros of jadx

  • More actively maintained with frequent updates
  • Supports decompilation of Android APK files directly
  • Includes a powerful GUI with search and navigation features

Cons of jadx

  • Larger file size and resource footprint
  • May struggle with heavily obfuscated code
  • Less focus on Java-specific decompilation compared to Luyten

Code Comparison

Luyten (Java decompilation):

public class Example {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

jadx (Android/Java decompilation):

public final class Example {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

The code output is similar, but jadx may include additional modifiers or annotations specific to Android development.

Summary

Both Luyten and jadx are powerful decompilation tools, but they serve slightly different purposes. Luyten focuses on Java decompilation, while jadx specializes in Android APK decompilation with additional features for mobile app analysis. The choice between them depends on the specific use case and the type of files being decompiled.

6,287

smali/baksmali

Pros of smali

  • Focuses specifically on assembling and disassembling Android's dex format
  • Provides a command-line interface for easier integration into scripts and workflows
  • Supports a wider range of Android versions and features

Cons of smali

  • Requires more technical knowledge to use effectively
  • Limited to working with dex files, while Luyten can handle Java class files
  • Lacks a graphical user interface, which may be less user-friendly for some users

Code Comparison

smali:

.class public LHelloWorld;
.super Ljava/lang/Object;
.method public static main([Ljava/lang/String;)V
    .registers 2
    sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
    const-string v1, "Hello, World!"
    invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
    return-void
.end method

Luyten (decompiled Java):

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Both tools serve different purposes in the realm of Android development and reverse engineering. smali is more focused on low-level manipulation of dex files, while Luyten provides a user-friendly interface for Java decompilation. The choice between them depends on the specific needs of the user and their level of expertise.

12,202

Tools to work with android .dex and java .class files

Pros of dex2jar

  • Focuses specifically on converting DEX to JAR files, making it more specialized for this task
  • Provides command-line tools for batch processing and automation
  • Supports a wider range of Android versions and DEX formats

Cons of dex2jar

  • Limited GUI functionality compared to Luyten
  • Requires additional tools for decompilation and code analysis
  • Less actively maintained, with fewer recent updates

Code Comparison

Luyten (Java decompilation):

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

dex2jar (DEX to JAR conversion):

d2j-dex2jar.sh classes.dex

Summary

Luyten is a Java decompiler with a user-friendly GUI, while dex2jar is a specialized tool for converting DEX files to JAR format. Luyten offers a more comprehensive solution for Java decompilation and analysis, whereas dex2jar excels in its specific task of DEX to JAR conversion. The choice between the two depends on the user's specific needs and workflow preferences.

A Java 8+ Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More)

Pros of bytecode-viewer

  • More comprehensive feature set, including multiple decompilers and plugins
  • Supports a wider range of file formats (e.g., APK, DEX, CLASS)
  • Active development with frequent updates and improvements

Cons of bytecode-viewer

  • Larger file size and resource footprint
  • Steeper learning curve due to more complex interface
  • May be overkill for simple decompilation tasks

Code Comparison

bytecode-viewer:

public class BytecodeViewer {
    public static void main(String[] args) {
        Boot.boot(args);
    }
}

Luyten:

public class LuytenApplication {
    public static void main(String[] args) {
        Main.main(args);
    }
}

Both projects serve as Java decompilers, but bytecode-viewer offers a more feature-rich experience at the cost of complexity. Luyten focuses on simplicity and ease of use, making it more suitable for quick decompilation tasks. bytecode-viewer's broader file format support and plugin system make it a more versatile tool for advanced users and complex projects. However, Luyten's lightweight nature and straightforward interface may be preferable for developers who primarily work with standard Java class files and require a more streamlined workflow.

1,993

This is the public repository for the CFR Java decompiler

Pros of CFR

  • More advanced decompilation capabilities, especially for complex Java bytecode
  • Actively maintained with frequent updates and improvements
  • Supports a wider range of Java versions and features

Cons of CFR

  • Command-line interface may be less user-friendly for some users
  • Lacks a built-in GUI, requiring additional setup for visual output
  • May produce more verbose output in some cases, which can be harder to read

Code Comparison

Luyten (Java Swing GUI initialization):

public MainWindow() {
    MainWindow.this.setVisible(false);
    buildUI();
    initializeBindings();
    loadSettings();
    MainWindow.this.setVisible(true);
}

CFR (Command-line argument parsing):

public static void main(String[] args) {
    CommandLineInterface cli = new CommandLineInterface(args);
    ClassFileSourceImpl classFileSource = cli.getClassFileSource();
    DCCommonState dcCommonState = new DCCommonState(cli.getOptions(), classFileSource);
    doClass(dcCommonState, cli.getClassPath(), cli.getOutputDir());
}
13,917

A standalone Java Decompiler GUI

Pros of jd-gui

  • More mature and established project with a longer history
  • Offers a standalone GUI application for easier use
  • Supports a wider range of Java versions

Cons of jd-gui

  • Less frequent updates and maintenance
  • Limited customization options for decompilation settings
  • Slower performance on large files compared to Luyten

Code Comparison

Luyten:

public class LuytenPreferences {
    public static final String THEME_XML_PATH = "/themes";
    public static final String DEFAULT_THEME_XML = "/themes/default.xml";
    // ...
}

jd-gui:

public class JdGuiPreferences {
    public static final String THEME_DIR = "themes";
    public static final String DEFAULT_THEME = "default.theme";
    // ...
}

Both projects use similar approaches for managing themes, but Luyten uses XML files while jd-gui uses custom theme files. Luyten's implementation appears to be more flexible with the use of XML, potentially allowing for easier customization.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Luyten

One of the Best
Java Decompiler Gui for Procyon
Apache License, Version 2.0

Releases

Compilation


We use maven to handle our dependencies.

  • Install Maven 3
  • Clone this repo and: mvn clean install

Screenshot

Screen

Downloads

Releases

Bugs/Suggestions

Issues

Powered by


Procyon

© 2015 Mike Strobel
https://bitbucket.org/mstrobel/procyon/overview
Apache License

RSyntaxTextArea

© 2012 Robert Futrell
https://bobbylight.github.io/RSyntaxTextArea/ All Rights Reserved