# Force Ghidra's Java home instead of trying to figure it out automatically. # If the provided path does not point to a supported Java home that Ghidra # supports, this property is ignored. # NOTE: Ghidra requires a JDK to launch. JAVA_HOME_OVERRIDE= # Required Ghidra class loader VMARGS=-Djava.system.class.loader=ghidra.GhidraClassLoader # Set default encoding to UTF8 VMARGS=-Dfile.encoding=UTF8 # Set locale (only en_US is supported) VMARGS=-Duser.country=US VMARGS=-Duser.language=en VMARGS=-Duser.variant= # The following options affect rendering on different platforms. It may be necessary to play # with these settings to get Ghidra to display and perform optimally on HiDPI monitors or in VM's. VMARGS=-Dsun.java2d.opengl=false VMARGS_LINUX=-Dsun.java2d.pmoffscreen=false VMARGS_LINUX=-Dsun.java2d.xrender=true VMARGS_LINUX=-Dsun.java2d.uiScale=1 VMARGS_LINUX=-Dawt.useSystemAAFontSettings=on VMARGS_WINDOWS=-Dsun.java2d.d3d=false # The Ghidra application establishes the default SSLContext for all # secure client connections based upon Java's default TLS protocol enablement. # Setting this property will restrict the enabled TLS protocol versions for # all secure network connections. Specifying multiple protocols must be # comma-separated (e.g., TLSv1.2,TLSv1.3). See https://java.com/en/configure_crypto.html # for details on configuring Java's cryptographic algorithms. VMARGS=-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 # Force PKI server authentication of all HTTPS and Ghidra Server connections by # specifying path to installed CA certificates file. # VMARGS=-Dghidra.cacerts= # Enable verbose logging for network SSL/TLS negotiations. # This can be very useful when troubleshooting SSLHandshakeException failures which can # manifest with very cryptic messages. All Ghidra Server communications rely on secure # SSL/TLS connections. This VMARG should only be uncommented while actively troubleshooting # since it will log a significant amount of data. # # See the "Troubleshoting JSSE" section of the following internet hosted document: # https://docs.oracle.com/en/java/javase/17/security/java-secure-socket-extension-jsse-reference-guide.html # #VMARGS=-Djavax.net.debug=ssl # The following property will limit the number of processor cores that Ghidra # will use for thread pools. If not specified, it will use the default number # of processors returned from Runtime.getRuntime().getAvailableProcessors(). # Otherwise, it will use the min of the value returned from Runtime and the # value specified by the following property. VMARGS=-Dcpu.core.limit= # The following property is a way to exactly specify the number of processor # cores that Ghidra will use for thread pools. Note: this will supersede the # above 'cpu.core.limit' value if it is set. VMARGS=-Dcpu.core.override= # Default font size for many java swing elements. VMARGS=-Dfont.size.override= # Set Jython console encoding (prevents a console error) VMARGS=-Dpython.console.encoding=UTF-8 # Eclipse on macOS can have file locking issues if the user home directory is networked. Therefore, # we will disable file locking by default for macOS. Comment the following line out if Eclipse file # locking is needed and known to work. VMARGS_MACOS=-Declipse.filelock.disable=true # Where the menu bar is displayed on macOS VMARGS_MACOS=-Dapple.laf.useScreenMenuBar=false # Make the title bar adaptable to macOS theme VMARGS_MACOS=-Dapple.awt.application.appearance=system # Prevent log4j from using the Jansi DLL on Windows. VMARGS_WINDOWS=-Dlog4j.skipJansi=true # Custom class loader usage forces class data sharing to be disabled which produces a warning. # Ghidra does not use class data sharing, so explicitly turn it off to avoid the warning. VMARGS=-Xshare:off # Restrict XML external access VMARGS=-Djavax.xml.accessExternalDTD= VMARGS=-Djavax.xml.accessExternalSchema= VMARGS=-Djavax.xml.accessExternalStylesheet= # Settings directory used by the application to store application settings and data that persist # between application sessions, system reboots, and periodic system cleanup. Overridden values # are required to be absolute paths. The current user name may be incorporated into the settings # directory's name if the settings directory lives outside of the user's home directory. The # settings directory will be selected based on the following rules, in order of precedence: # 1. System.getProperty("application.settingsdir")/[user-]/_ # 2. System.getenv("XDG_CONFIG_HOME")/[user-]/_ # 3. A platform specific default location: # - Windows: %APPDATA%\\_ # - Linux: $HOME/.config//_ # - macOS: $HOME/Library//_ #VMARGS=-Dapplication.settingsdir= # Cache directory used by the application to store cached application data that ideally will persist # between application sessions and system reboots, but is not required to do so. Files stored in # the cache directory may be numerous and/or large. Overridden values are required to be absolute # paths. The current user name may be incorporated into the cache directory's name if the cache # directory lives outside of the user's home directory. The cache directory will be selected based # on the following rules, in order of precedence # 1. System.getProperty("application.cachedir")/[user-] # 2. System.getenv("XDG_CACHE_HOME")/[user-] # 3. A platform specific default location: # - Windows: %LOCALAPPDATA%\ # - Linux: /var/tmp/- # - macOS: /var/tmp/- #VMARGS=-Dapplication.cachedir= # Temporary directory used by the application to store short-lived files that are not required to # persist between application sessions. Overridden values are required to be absolute paths. The # current user name may be incorporated into the temporary directory's name if the temporary # directory lives outside of the user's home directory. The temporary directory will be selected # based on the following rules, in order of precedence: # 1. System.getProperty("application.tempdir")/[user-] # 2. System.getProperty("java.io.tmpdir")/[user-] # Unless overridden below, the "java.io.tmpdir" system property typically defaults to the following # platform specific locations: # - Windows: %TEMP% # - Linux: /tmp # - macOS: $TMPDIR #VMARGS=-Dapplication.tempdir= #VMARGS=-Djava.io.tmpdir= # Disable alternating row colors in tables #VMARGS=-Ddisable.alternating.row.colors=true # Limit on XML parsing. See https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html #VMARGS=-Djdk.xml.totalEntitySizeLimit=50000000 # Restrict extensions to their own 'lib' directory for loading non-Ghidra jars. This may be used # to fix class resolution if multiple extensions include different versions of the same named class. #VMARGS=-Dghidra.extensions.classpath.restricted=true # Enables PDB debug logging during import and analysis to .ghidra/.ghidra_ver/pdb.analyzer.log #VMARGS=-Dghidra.pdb.logging=true # Enables PDB developer mode #VMARGS=-Dghidra.pdb.developerMode=true # Disables the loaders echoing their message log to the application.log file #VMARGS=-Ddisable.loader.logging=true