{
  "name": "jenv",
  "description": "Manage your Java environment",
  "subcommands": [
    {
      "name": "commands",
      "description": "List all available JEnv commands"
    },
    {
      "name": "help",
      "description": "Parses and displays help contents from a command's source file",
      "options": [
        {
          "names": [
            "--usage"
          ]
        }
      ],
      "args": [
        {
          "name": "COMMAND"
        }
      ]
    },
    {
      "name": "info",
      "description": "Show information about which command will be executed",
      "args": [
        {
          "name": "command"
        }
      ]
    },
    {
      "name": "add",
      "description": "Add JDK into jenv. A alias name will be generated by parsing \"java -version\"",
      "args": [
        {
          "name": "JAVA_HOME",
          "template": "folders"
        }
      ]
    },
    {
      "name": "enable-plugin",
      "description": "Activate a jEnv plugin",
      "args": [
        {
          "name": "pluginName",
          "description": "Plugin Name"
        }
      ]
    },
    {
      "name": "disable-plugin",
      "description": "Deactivate a jEnv plugin",
      "args": [
        {
          "name": "pluginName",
          "description": "Plugin Name"
        }
      ]
    },
    {
      "name": "doctor",
      "description": "Run jEnv diagnostics"
    },
    {
      "name": "exec",
      "description": "Runs an executable by first preparing PATH so that the selected Java version's `bin' directory is at the front",
      "args": [
        {
          "name": "command"
        }
      ]
    },
    {
      "name": "global",
      "description": "Sets the global Java version",
      "args": [
        {
          "name": "version"
        }
      ]
    },
    {
      "name": "global-options",
      "description": "Sets the global Java options",
      "args": [
        {
          "name": "options",
          "is_variadic": true
        }
      ]
    },
    {
      "name": "local",
      "description": "Sets the local application-specific Java version by writing the version name to a file named `.java-version'",
      "options": [
        {
          "names": [
            "--unset"
          ],
          "description": "Remove local jEnv settings"
        }
      ],
      "args": [
        {
          "name": "version"
        }
      ]
    },
    {
      "name": "local-options",
      "description": "Sets the local application-specific Java options",
      "args": [
        {
          "name": "options",
          "is_variadic": true
        }
      ]
    },
    {
      "name": "shell",
      "description": "Sets a shell-specific Java version by setting the `JENV_VERSION'",
      "options": [
        {
          "names": [
            "--unset"
          ],
          "description": "Remove shell jEnv settings"
        }
      ],
      "args": [
        {
          "name": "version"
        }
      ]
    },
    {
      "name": "shell-options",
      "description": "Sets the shell-specific Java options",
      "args": [
        {
          "name": "options",
          "is_variadic": true
        }
      ]
    },
    {
      "name": "hooks",
      "description": "List hook scripts for a given jenv command",
      "args": [
        {
          "name": "command"
        }
      ]
    },
    {
      "name": "init",
      "description": "Configure the shell environment for jenv"
    },
    {
      "name": "javahome",
      "description": "Display path to selected JAVA_HOME"
    },
    {
      "name": "macos-javahome",
      "description": "Installs a file located at ~/Library/LaunchAgents/jenv-environment.plist . It sets JAVA_HOME for GUI applications on startup for the **currently active version of Java**"
    },
    {
      "name": "options",
      "description": "Show the current Java options"
    },
    {
      "name": "options-file",
      "description": "Detect the file that sets the current jenv jvm options"
    },
    {
      "name": "options-file-read",
      "description": "Read options from file",
      "args": [
        {
          "name": "file",
          "template": "filepaths"
        }
      ]
    },
    {
      "name": "options-file-write",
      "description": "Write options to a file",
      "args": [
        {
          "name": "file",
          "template": "filepaths"
        },
        {
          "name": "options",
          "is_variadic": true
        }
      ]
    },
    {
      "name": "prefix",
      "description": "Displays the directory where a Java version is installed",
      "args": [
        {
          "name": "version"
        }
      ]
    },
    {
      "name": "refresh-plugins",
      "description": "Refresh plugins links"
    },
    {
      "name": "refresh-versions",
      "description": "Refresh alias names"
    },
    {
      "name": "rehash",
      "description": "Rehash jenv shims (run this after installing executables)"
    },
    {
      "name": "remove",
      "description": "Remove JDK installations",
      "args": [
        {
          "name": "version"
        }
      ]
    },
    {
      "name": "root",
      "description": "Display the root directory where versions and shims are kept"
    },
    {
      "name": "shims",
      "description": "List existing jenv shims",
      "options": [
        {
          "names": [
            "--short"
          ],
          "description": "Show only files without path"
        }
      ]
    },
    {
      "name": "version",
      "description": "Shows the currently selected Java version and how it was selected"
    },
    {
      "name": "versions",
      "description": "Lists all Java versions found in `$JENV_ROOT/versions/*'",
      "options": [
        {
          "names": [
            "--bare"
          ],
          "description": "Display only version"
        },
        {
          "names": [
            "--verbose"
          ],
          "description": "Display verbose output"
        }
      ]
    },
    {
      "name": "whence",
      "description": "List all Java versions that contain the given executable",
      "options": [
        {
          "names": [
            "--path"
          ]
        }
      ],
      "args": [
        {
          "name": "command"
        }
      ]
    },
    {
      "name": "which",
      "description": "Displays the full path to the executable that jenv will invoke when you run the given command",
      "args": [
        {
          "name": "command"
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Show help for jEnv"
    },
    {
      "names": [
        "--version"
      ],
      "description": "Show version for jEnv"
    }
  ]
}
