Package ghidra

# Class GhidraJarApplicationLayout

java.lang.Object
utility.application.ApplicationLayout
ghidra.GhidraApplicationLayout
ghidra.GhidraJarApplicationLayout

public class GhidraJarApplicationLayout extends GhidraApplicationLayout
The Ghidra jar application layout defines the customizable elements of the Ghidra application's directory structure when running in "single jar mode."

- ## Field Summary

  ### Fields inherited from class utility.application.ApplicationLayout

  `applicationInstallationDir, applicationProperties, applicationRootDirs, extensionArchiveDir, extensionInstallationDirs, modules, patchDir, userCacheDir, userSettingsDir, userTempDir`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GhidraJarApplicationLayout()`
  Constructs a new Ghidra jar application layout object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected ResourceFile`
  `findExtensionArchiveDirectory()`
  Returns the directory where all Ghidra extension archives are stored.
  `protected List<ResourceFile>`
  `findExtensionInstallationDirectories()`
  Returns a prioritized list of directories where Ghidra extensions are installed.
  `protected ResourceFile`
  `findGhidraApplicationInstallationDir()`
  Finds the application installation directory for this Ghidra application layout.
  `protected Collection<ResourceFile>`
  `findGhidraApplicationRootDirs()`
  Finds the application root directories for this application layout.
  `protected Map<String,GModule>`
  `findGhidraModules()`
  Finds the modules for this Ghidra application layout.
  `boolean`
  `inSingleJarMode()`
  Checks whether or not the application is using a "single jar" layout.

  ### Methods inherited from class ghidra.GhidraApplicationLayout

  `findPatchDirectory`

  ### Methods inherited from class utility.application.ApplicationLayout

  `createUserDirs, getApplicationInstallationDir, getApplicationProperties, getApplicationRootDirs, getExtensionArchiveDir, getExtensionInstallationDirs, getModules, getPatchDir, getUserCacheDir, getUserSettingsDir, getUserTempDir`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### GhidraJarApplicationLayout

    public GhidraJarApplicationLayout() throws FileNotFoundException, IOException
    Constructs a new Ghidra jar application layout object.
    Throws:
      `FileNotFoundException` - if there was a problem getting a user directory.
      `IOException` - if there was a problem getting the application properties or modules.

- ## Method Details

  - ### inSingleJarMode

    public boolean inSingleJarMode()
    Description copied from class: `ApplicationLayout`
    Checks whether or not the application is using a "single jar" layout. Custom application layouts that extend this class can override this method once they determine they are in single jar mode.
    Overrides:
      `inSingleJarMode` in class `ApplicationLayout`
    Returns:
      true if the application is using a "single jar" layout; otherwise, false.

  - ### findGhidraApplicationRootDirs

    protected Collection<ResourceFile> findGhidraApplicationRootDirs()
    Description copied from class: `GhidraApplicationLayout`
    Finds the application root directories for this application layout.
    Overrides:
      `findGhidraApplicationRootDirs` in class `GhidraApplicationLayout`
    Returns:
      A collection of the application root directories for this layout.

  - ### findGhidraApplicationInstallationDir

    protected ResourceFile findGhidraApplicationInstallationDir()
    Description copied from class: `GhidraApplicationLayout`
    Finds the application installation directory for this Ghidra application layout.
    Overrides:
      `findGhidraApplicationInstallationDir` in class `GhidraApplicationLayout`
    Returns:
      The application installation directory for this Ghidra application layout. Could be null if there is no application installation directory.

  - ### findGhidraModules

    protected Map<String,GModule> findGhidraModules() throws IOException
    Description copied from class: `GhidraApplicationLayout`
    Finds the modules for this Ghidra application layout.
    Overrides:
      `findGhidraModules` in class `GhidraApplicationLayout`
    Returns:
      The modules for this Ghidra application layout.
    Throws:
      `IOException` - if there was a problem finding the modules on disk.

  - ### findExtensionArchiveDirectory

    protected ResourceFile findExtensionArchiveDirectory()
    Description copied from class: `GhidraApplicationLayout`
    Returns the directory where all Ghidra extension archives are stored. This should be at the following location:
    - `{install dir}/Extensions/Ghidra`
    Overrides:
      `findExtensionArchiveDirectory` in class `GhidraApplicationLayout`
    Returns:
      the archive folder, or null if can't be determined

  - ### findExtensionInstallationDirectories

    protected List<ResourceFile> findExtensionInstallationDirectories()
    Description copied from class: `GhidraApplicationLayout`
    Returns a prioritized list of directories where Ghidra extensions are installed. These should be at the following locations:
    - `[user settings dir]/Extensions`
    - `[application install dir]/Ghidra/Extensions` (Release Mode)
    - `ghidra/Ghidra/Extensions` (Development Mode)
    Overrides:
      `findExtensionInstallationDirectories` in class `GhidraApplicationLayout`
    Returns:
      the install folder, or null if can't be determined