System properties can influence the behaviour of the running IDE in various ways. The most convenient place to specify them is in etc/netbeans.conf file. This page summarizes the list of such extension points defined by modules with API.
To get your API listed here, use
<api type='export' group='systemproperty' ... /> in
your module arch.xml document.
If a longer message is logged the ant logger will handle the message as plain text and will not try to hyperlink, color, fold, etc. If not set by the user a default value of 3000 will be used.
VirtualMachine.setDebugTraceMode() method. See the javadoc
of that method for the description and possible values.
org.netbeans.core.startup.Main).
Might be used by alternate launchers.
user.dir.
none,
then the fallback cache check is completely disabled.
"netbeans.patches." + module.getCodeNameBase()
one can influence installed modules without changing the build.
Format is -Dnetbeans.patches.org.nb.mods.foo=/path/to.file.jar:/path/to/dir.
core/*.jar files has been initialized
and the user dir has not yet been updated (see bellow) the
launcher checks for value of netbeans.importclass
system property and if provided it loads that class and invokes
its main method (in AWT thread) and if no exception is thrown it
marks the userdir as already upgraded.
Launcher calls method showLicensePanel of netbeans.acceptlicenseclass
if license was not yet accepted by user and it is necessary to show license
in dialog to user.
Controls whether to log messages to the console, or just to the log file.
Setting this property to less than zero value enables logging of what is
going on in the CLIHandler - e.g. in the code that locks user directory and
handles processing of command line options. Use -J-Dorg.netbeans.CLIHandler=-1
to send the logging to System.err.
One can disable the CLI server (listening on commands
from subsequent invocations) by setting property
org.netbeans.CLIHandler.server to false.
Contains class name of a class that can serve as provider of the writable layer of the
system file system. The class must be a subclass of
org.openide.filesystems.FileSystem and have public default constructor.
Morevoer the class denoted by the property must be on the classpath.
System.exit.
One can disable this behavior by providing -Dnetbeans.security.nocheck=true.
Since version 2.47 such property also allows the SecurityManager
to be replaced by another.
getContent() method of ExClipboard
waits to synchronize with system clipboard. Defaults to 1000ms.
DuplicateException when an attempt is made
to load an already loaded module.
One can change this behavior by providing -Dnetbeans.ignore.dupmodule=true
since version 2.63. When -Dnetbeans.ignore.dupmodule=true is provided,
attempt of duplicate loading is logged instead of throwing DuplicateException.
trueto workaround the bug #50423 which appears on some linuxes on JDK 1.5.
trueif you do want to cleanup the module system, but not call System.exit at the end. Used from
NbModuleSuite from
nbjunit library.
org.netbeans.core.TimeableEventQueue.quantum=xyz - for how long the event queue must be blocked to start the self-sampler (by default 100ms),
org.netbeans.core.TimeableEventQueue.report=xyz - total time of blocked event queue to report a problem (by default 3s),
org.netbeans.core.TimeableEventQueue.waitcursor=xyz - time for which a problem is not reported if mouse wait cursor is in place (by default 15s),
org.netbeans.core.TimeableEventQueue.pause=xyz - time after reporting a problem for which the detection is disabled (by default 15s).
System.getProperties() that start with prefix felix.
or org.osgi.framework. are read on initialization of the
Netigso system and injected into configuration of OSGi container
before it starts.
If started with -J-Dorg.netbeans.log.startup=print parameter, then
times of various start operations are printed to console. If the value is
-J-Dorg.netbeans.log.startup=file then the values are printed into
file specified by -J-Dorg.netbeans.log.startup.logfile=filename.
Since NetBeans 7.1 one can also fill in the file by standard XML format
of log messages by using -J-Dorg.netbeans.log.startup=xml.
Moreover if any module logs data to Logger.getLogger("org.netbeans.log.startup")
with calls like log(Level.FINE, "start", "msg") and
log(Level.FINE, "end", "msg") or
log(Level.FINE, "progress", "msg"), then these messages
are collected into the start log as well.
System.err and
System.out by the logging infrastructure.
-J-Dorg.netbeans.log.numberOfFiles=number then the log files for
number-1 previous executions will be preserved. Default and
minimum number is 3.
This property can contain name of a class implementing
FileSystem
with a public default constructor. Such filesystem is then used during
initialization of writable layer of system file system (see
getConfigRoot).
The filesystem may use or may ignore value of
System.getProperty("netbeans.user").
Note: The class is loaded sooner then modules are initialized,
as such the class providing it must be from a JAR file placed in
to $cluster/core/ directory. Such JAR may have just a
limited dependencies - e.g. only module system and filesystem API.
Similar to OSGi's org.osgi.framework.bootdelegation property.
Allows unit tests (or even regular code) to prevent classloading from
application classloader for other, then explicitly enumerated packages.
This property shall contain a set of comma separated values of
package names. Classes from those packages will be loaded by the
classloader framework from application classloader. If the name of
a package ends with .* suffix, all packages under the
given package name are allowed for delegation (but not the package by itself).
The classes from the java.* namespace are allowed
and do not need to be enumerated at all. If this property is not
specified at all, all classes visible by the application classloader
can be accessed. Available since version 1.26.
This property includes the display name presented to the user as Product Version in the About dialog box and in the log file.
Some applications built on top of NetBeans Platform expressed an option that certain files in caches, namely all-resources.dat can be too big and that this is not good for multi-user installation. To give such applications control over creation of this file, there is a property to (conditionally) disable the creation of the cache file.
Change value of org.netbeans.core.update.all.resources property
in launcher configuration file or provide it as a virtual machine
parameter on command line.
Set it to never, always or missing.
The default is to regenerate and update the cache always.
Value missing means to generate
the cache only if it has not been previously available (even in
installation location). Setting the value to never will
disable the creation of the cache after start completely.
Changing default value of the property may be particulary useful when there is a shared installation of the application, there are many users with a home (and cache) directory on a slow (network) file system and it is expected most of them won't install additional modules into their own user directory.
Setting this property affects the associated module autoupdate.ui.
Setting it to true results in the detailed view (all visible plugins) been selected
when Installed tab is opened in Plugin Manager.
Otherwise the simple view (high-level features) is selected.
-J-Dorg.netbeans.modules.editor.completion.slowness.report
property to more than 2000 ms (the default value).
netbeans.debug.gradle.info.action=true
would make the Gradle project information loading into a debugabble JVM
where the debugging port is 5006. A new debugger session
can be attached to that port, make the netbeans-gradle-tooling
project debuggable in action.
true the project updates metadata of project.xml from
the namespace http://www.netbeans.org/ns/j2se-project/1 to
http://www.netbeans.org/ns/j2se-project/2 without explicit user confirmation.
If set to true, displays a truncated version of Java package
names, usually in the Projects tab.
If a longer message is logged the ant logger will handle the message as plain text and will not try to hyperlink, color, fold, etc. If not set by the user a default value of 3000 will be used.
If set to true, displays a truncated version of Java package
names, usually in the Projects tab.
If a longer message is logged the ant logger will handle the message as plain text and will not try to hyperlink, color, fold, etc. If not set by the user a default value of 3000 will be used.
ensure.built.source.roots property is set during ant script execution,
the javac task will not actually build the classfiles from scratch, but rather copy classfiles
produced by the Java infrastructure into the output folder. The content of the property will
be interpreted as list of source roots, for which the artifacts should be copied.
If set to true,
*.class files generated by external build processes
will not be overwritten by the IDE’s Java parser
when running in “compile-on-save” mode
unless the class files are older than the corresponding source file.
198946)
there is a special property org.netbeans.modules.masterfs.case
that can be set to sensitive or insensitive value
in order to override the system default. This is intended only for end user
consumption, not for consumption by other parts of the system. The name and
meaning of this property may change in any release.
Native listeners check the org.netbeans.io.suspend property.
If it is set to integer greater than zero, they stop delivering file change events.
The list of modified directories is recorded (its size is made available
by setting its string value into org.netbeans.io.pending property),
but its processing is suspended. Events are delivered when
org.netbeans.io.suspend property changes its value to 0
or becomes empty.
I/O intensive operations in other NetBeans modules are advised
to honour the org.netbeans.io.suspend property as well and
suspend their I/O activities too.
In order to properly communicate changes to the property between multiple
receivers and multiple controllers it is suggested to
only manipulate the value under synchronized("org.netbeans.io.suspend".intern())
lock. Those changing the value are supposed to increment it by one when they
request the suspend and decrement it by one when they want to resume their
own suspend.
Whenever a change to the state of the property is made,
controllers are supposed to
"org.netbeans.io.suspend".intern().notifyAll().
NbTestCase
methods so it is more predicatable (see
Order of elements for description of the problem). The acceptable
values of the property are:
branding.token.
If it is provided (by Ant harness for example), it is used
to call
NbBundle.setBranding.
If defined, limits search for a parent project to a certain subtree. The property defines the absolute path of a folder where upwards search for a project in parent folders is terminated. Queries outside the root will not find any project. Multiple folders may be specified when delimited with OS-specific path separators (':' on *nix, ';' on Windows). Currently used for tests so the tested runtime does not escape the workdir.
When this property is set, the opening of projects doesn't trigger opening and focusing of the projects logical view top component. Allows the BlueJ Edition to focus it's own component instead.
Error manager logging category for things affecting project list.
Property for overriding default location of projects directory which is folder NetBeansProjects under $HOME on Unixes and under default user folder on Windows (e.g. C:\Documents and Settings\[username]\My Documents\NetBeansProjects). Directory passed by the property must exist, otherwise default is used.
org.netbeans.modules.uihandler.Submit
property when invoking NetBeans.
org.netbeans.modules.uihandler.Submit
property when invoking NetBeans.
The system property nb.tabs.suppressCloseButton
can be used to hide close buttons by default.
The system property winsys.stretching_view_tabs
can be used to switch to stretching tab layout as implemented
in NetBeans version 7.0 and older.
true, changes default value of the
asynchronous() method. Useful for unit tests
which would prefer to run all tested actions synchronously.
path attribute. By default, when running inside NetBeans IDE,
apisupport.project registers such class and provides
items representing valid paths in current project.
If true, better diagnostic information will be available as to when file input or
output streams were opened that prevent a file from being deleted because they were not closed.
This information comes at a performance cost, however.
Since 7.25 the DataFolder.getNodeDelegate() tries to prevent
creation of
DataObject
in AWT dispatch thread. Rather it creates dummy node with name
derived from the name of the file and simplified content of lookup:
The creation of real node is scheduled to background and as soon as the DataObject and its Node are ready, the initial dummy node is replaced by the real one.
This whole system is slightly incompatible and may complicate creation
of filtered views over the node hierarchy (one needs to be ready to
really dynamics changes). That is why it is possible to disable
the new delayed
system by starting the system with
-Dorg.openide.loaders.FolderChildren.delayedCreation=false.
Use this property as a temporary fix for your problems, but consider
fixing your code to support the delayed mode
in the future.
DataObject.copy, move, createFromTemplate
are executed in insecure way. That means that other threads can access the
products of such operation before it finishes. This is a friend contract
with projects, that need to do such strange things. Will be removed when they
fix it.
ErrorManager logging) to the console
from the module system.
Used to control the XML layer cache mechanism. Value may be a
fully-qualified class name to load as a manager (implement
org.netbeans.core.projects.cache.LayerCacheManager),
or - to disable caching and always parse the XML
layers directly. Current default is to use a binary cache
manager.
org.openide.util.Lookup and
has public constructor, that should be instantiated and returned from
Lookup.getDefault()
the class will be loaded by
Thread.currentThread().getContextClassLoader()
classloader the first time Lookup.getDefault is invoked.
The property can also contain value "-" which means to completely
disable the lookup instantiation and return
Lookup.EMPTY
from
Lookup.getDefault().
MetaInfServicesLookup
is constructed for Thread.currentThread().getContextclassLoader()
that implements the
JDK's standard. If, by
a chance an instance of
Lookup.Provider
is found
in there, its lookup is returned as result. Otherwise the MetaInfServicesLookup
is the result of
Lookup.getDefault().
org.openide.util.Lookup.paths=Folder1:Folder2:Folder3.
If this property is set prior to first call to
Lookup.getDefault(),
it is split into pieces (separator is ':') and individual
parts are then used to construct Lookups.forPath("Folder1"),
etc. All these lookups then become part of the
Lookup.getDefault()
one. This property works since version 7.24
-J-Dnetbeans.winsys.imageSource=org/netbeans/core/resources/splash.gif
-J-Dnetbeans.winsys.fade.on=true
-J-Dnetbeans.winsys.disable_dnd=true
TopComponentS between editor(document) and view
which is restricte otherwise.
It is experimental now.
-J-Dnetbeans.winsys.allow.dock.anywhere=true
-J-Dnetbeans.winsys.hideEmptyDocArea=true
-J-Dnetbeans.winsys.statusLine.in.menuBar=true
-J-Dnetbeans.winsys.no_toolbars=true
org.openide.awt.MenuBar.
This alternative menu bar will be used instead of the default one.
-J-Dnetbeans.winsys.menu_bar.path=foo/bar.instance
javax.swing.JComponent.
This alternative status line will be used instead of the default one.
-J-Dnetbeans.winsys.status_line.path=foo/bar.instance
-J-Dnetbeans.winsys.no_help_in_dialogs=true
If set to false, windows opened (e.g. TopComponent.open) using the
dummy fallback window manager will not really be set to be visible. Useful for unit tests which
must incidentally use the Window System API but for which actual display of windows is undesirable.