WinEnvVars (install4j API)
Description: declaration: package: com.install4j.api.windows, class: WinEnvVars

# Class WinEnvVars

java.lang.Object
com.install4j.api.windows.WinEnvVars

public class WinEnvVars extends Object
Collection of static methods to get and modify environment variables on Windows.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WinEnvVars()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `appendToPath(String value)`
  Appends one or more directories to the PATH environment variable.
  `static void`
  `appendToUserPath(String value)`
  Appends one or more directories to the user-specific PATH environment variable.
  `static Properties`
  `getenv()`
  Returns all environment variables.
  `static String`
  `getenv(String key)`
  Returns a single environment variable.
  `static String`
  `getFromRegistry(String key, boolean userSpecific)`
  Return an environment variable as set in the Windows registry.
  `static void`
  `prependToPath(String value)`
  Prepends one or more directories to the PATH environment variable.
  `static void`
  `prependToUserPath(String value)`
  Prepends one or more directories to the user-specific PATH environment variable.
  `static void`
  `set(String key, String value)`
  Sets a global environment variable.
  `static void`
  `setUserSpecific(String key, String value)`
  Sets a user-specific environment variable.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### WinEnvVars

    public WinEnvVars()

- ## Method Details

  - ### set

    public static void set(String key, String value) throws IOException
    Sets a global environment variable. Needs Administrator rights.
    Parameters:
      `key` - the name of the environment variable
      `value` - the value of the environment variable
    Throws:
      `IOException` - if the environment variable could not be set

  - ### setUserSpecific

    public static void setUserSpecific(String key, String value) throws IOException
    Sets a user-specific environment variable.
    Parameters:
      `key` - the name of the environment variable
      `value` - the value of the environment variable
    Throws:
      `IOException` - if the environment variable could not be set

  - ### getenv

    public static String getenv(String key)
    Returns a single environment variable.
    Parameters:
      `key` - the name of the environment variable. Case does not matter.
    Returns:
      the value of the environment variable or `null` if not defined

  - ### getenv

    public static Properties getenv()
    Returns all environment variables.
    Returns:
      a property map with all environment variables and their values

  - ### getFromRegistry

    public static String getFromRegistry(String key, boolean userSpecific) throws IOException
    Return an environment variable as set in the Windows registry. The user-specific setting may be different from the value returned in `getenv()`. For example, the `PATH` environment variable is modified by the install4j launcher and is not equal to the system setting. In addition, the value returned for `PATH` will have no variable substitutions performed.
    Parameters:
      `key` - the name of the environment variable. Case does not matter.
      `userSpecific` - If `true` the user-specific variant should be retrieved. Otherwise, the global setting will be returned.
    Returns:
      the value of the environment variable or `null` if not defined
    Throws:
      `IOException` - if the environment variable could not be retrieved

  - ### appendToPath

    public static void appendToPath(String value) throws IOException
    Appends one or more directories to the PATH environment variable. Needs Administrator rights.
    Parameters:
      `value` - the value to be appended to the path
    Throws:
      `IOException` - if the environment variable could not be set

  - ### prependToPath

    public static void prependToPath(String value) throws IOException
    Prepends one or more directories to the PATH environment variable. Needs Administrator rights.
    Parameters:
      `value` - the value to be prepended to the path
    Throws:
      `IOException` - if the environment variable could not be set

  - ### appendToUserPath

    public static void appendToUserPath(String value) throws IOException
    Appends one or more directories to the user-specific PATH environment variable.
    Parameters:
      `value` - the value to be appended to the path
    Throws:
      `IOException` - if the environment variable could not be set
    See Also:
      - `appendToPath(String)`

  - ### prependToUserPath

    public static void prependToUserPath(String value) throws IOException
    Prepends one or more directories to the user-specific PATH environment variable.
    Parameters:
      `value` - the value to be prepended to the path
    Throws:
      `IOException` - if the environment variable could not be set
    See Also:
      - `prependToPath(String)`