QuPath’s launcher is controlled by a configuration file generated by jpackage. It exists somewhere within the installation (probably the app subdirectory) and has a name like QuPath.cfg.
The .cfg file provides a way to modify some aspects of QuPath’s behavior via the
The contents may change across QuPath versions, but the following gives an example:
[JavaOptions] java-options=-Djpackage.app-version=0.3.0 java-options=-Djava.library.path=$APPDIR java-options=--illegal-access=permit java-options=-XX:MaxRAMPercentage=50
The most relevant JavaOptions you might want to change are described below.
These configuration options are also very useful when running QuPath from within an IDE.
These are specified with
General system properties
- - jpackage.app-version
Application version. This should correspond to the QuPath version, but unfortunately it sometimes difference because of platform-specific rules, e.g. macOS forbidding the first number to be 0.
- - java.library.path
Path in which Java will look for native libraries (e.g. OpenSlide).
You can change this if you need to make other native libraries available to QuPath extensions, e.g. to use
Note that on Windows the separator is
- - java.util.concurrent.ForkJoinPool.common.parallelism
Control the number of threads used in the common ForkJoinPool.
This determines the default parallelism of parallel streams. Because streams provide an easy way parallelize some operations, and they are used in several places within QuPath, this property can be useful if memory errors are seen because of too many threads relative to the amount of available memory.
- - qupath.prefs.name
Specify the location for the QuPath preferences, as a node name (not a file path). This is useful if you want to have two separate QuPath instances installed with different preferences, or if you are developing a QuPath extension and don’t want to load extensions from another QuPath installation.