The Snow Inventory Java Scanner not only inventories Java binaries but also detects certain Java commercial features. This article explains how each supported feature is identified by the scanner and outlines any associated configuration options. Examples are provided where available.
The Snow Inventory Java Scanner can detect the following five commercial features:
- Advanced Management Console
- Java Flight Recorder
- Java Usage Tracker
- JDK Mission Control
- MSI Enterprise JRE Installer
1. Advanced Management Console (AMC)
Detection of AMC occurs by querying the system's process table for any process named AMCAgent.
Example logging (Linux)
Trace; Scanning paths; se.snow.javascanner.command.CmdExecutor; executePlainCommand; Executing system command: [/bin/sh, -c, ps -eaf | grep AMCAgent | grep -v grep]
Example logging (Windows)
Trace; Scanning paths; se.snow.javascanner.command.CmdExecutor; executePlainCommand; Executing system command: [cmd, /c, "wmic process where "name like '%AMCAgent.exe%'" get Name, ExecutablePath, CommandLine /format:list <NUL"]
2. Java Flight Recorder (JFR)
JFR is detected using jcmd queries:
- First, list running processes:
/usr/lib/jvm/jdk-11-oracle-x64/bin/jcmd -l
- Then, for each process found, run:
jcmd {process_id} VM.system_properties
jcmd {process_id} VM.check_commercial_features
Example logging (Linux):
(jcmd -l)
Trace; Scanning paths; se.snow.javascanner.command.CmdExecutor; executeCommand; Executing system command: [/bin/sh, -c, "/usr/lib/jvm/jdk-11-oracle-x64/bin/jcmd" -l]
Trace; Scanning paths; se.snow.javascanner.command.CmdExecutor; executeCommand; Command output: 24868 /opt/snow/sijs.jar -c snowagent.config -data-dir /opt/snow/data/ 24891 jdk.jcmd/sun.tools.jcmd.JCmd -l 24207 /tmp/simplejavatimer.jar
(jcmd <PID> VM.system_properties)
Trace; Scanning paths; se.snow.javascanner.command.CmdExecutor; executeCommand; Executing system command: [/bin/sh, -c, "/usr/lib/jvm/jdk-11-oracle-x64/bin/jcmd" 24207 VM.system_properties]
Trace; Scanning paths; se.snow.javascanner.command.CmdExecutor; executeCommand; Command output: 24207: #Fri Jan 23 16:14:38 GMT 2026 java.runtime.name=Java(TM) SE Runtime Environment sun.boot.library.path=/opt/alt_java/jdk1.8.0/jre/lib/amd64 java.vm.version=25.0-b70 java.vm.vendor=Oracle Corporation java.vendor.url=http\://java.oracle.com/ path.separator=\: java.vm.name=Java HotSpot(TM) 64-Bit Server VM file.encoding.pkg=sun.io user.country=GB sun.java.launcher=SUN_STANDARD sun.os.patch.level=unknown java.vm.specification.name=Java Virtual Machine Specification user.dir=/home/rob java.runtime.version=1.8.0-b132 java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment java.endorsed.dirs=/opt/alt_java/jdk1.8.0/jre/lib/endorsed os.arch=amd64 java.io.tmpdir=/tmp line.separator=\n java.vm.specification.vendor=Oracle Corporation os.name=Linux sun.jnu.encoding=UTF-8 java.library.path=/usr/java/packages/lib/amd64\:/usr/lib64\:/lib64\:/lib\:/usr/lib sun.awt.enableExtraMouseButtons=true java.specification.name=Java Platform API Specification java.class.version=52.0 sun.management.compiler=HotSpot 64-Bit Tiered Compilers os.version=4.18.0-553.60.1.el8_10.x86_64 user.home=/home/rob user.timezone=Europe/London java.awt.printerjob=sun.print.PSPrinterJob file.encoding=UTF-8 java.specification.version=1.8 user.name=rob java.class.path=/tmp/simplejavatimer.jar java.vm.specification.version=1.8 sun.java.command=/tmp/simplejavatimer.jar java.home=/opt/alt_java/jdk1.8.0/jre sun.arch.data.model=64 user.language=en java.specification.vendor=Oracle Corporation awt.toolkit=sun.awt.X11.XToolkit java.vm.info=mixed mode java.version=1.8.0 java.ext.dirs=/opt/alt_java/jdk1.8.0/jre/lib/ext\:/usr/java/packages/lib/ext sun.boot.class.path=/opt/alt_java/jdk1.8.0/jre/lib/resources.jar\:/opt/alt_java/jdk1.8.0/jre/lib/rt.jar\:/opt/alt_java/jdk1.8.0/jre/lib/sunrsasign.jar\:/opt/alt_java/jdk1.8.0/jre/lib/jsse.jar\:/opt/alt_java/jdk1.8.0/jre/lib/jce.jar\:/opt/alt_java/jdk1.8.0/jre/lib/charsets.jar\:/opt/alt_java/jdk1.8.0/jre/lib/jfr.jar\:/opt/alt_java/jdk1.8.0/jre/classes java.vendor=Oracle Corporation file.separator=/ java.vendor.url.bug=http\://bugreport.sun.com/bugreport/ sun.font.fontmanager=sun.awt.X11FontManager sun.io.unicode.encoding=UnicodeLittle sun.cpu.endian=little sun.desktop=gnome sun.cpu.isalist=
(jcmd <PID> VM.check_commercial_features)
Trace; Scanning paths; se.snow.javascanner.command.CmdExecutor; executeCommand; Executing system command: [/bin/sh, -c, "/usr/lib/jvm/jdk-11-oracle-x64/bin/jcmd" 24207 VM.check_commercial_features]
Trace; Scanning paths; se.snow.javascanner.command.CmdExecutor; executeCommand; Command output: 24207: Commercial Features are unlocked. Status of individual features: Java Flight Recorder is enabled.
3. Java Usage Tracker
Detection involves checking for a correctly configured usagetracker.properties file, which must include at least one of:
- com.oracle.usagetracker.logToFile
- com.oracle.usagetracker.logToUDP
Locations include:
- Central location:
- Unix/Linux:
/etc/oracle/java/ - MacOS:
/Library/Application Support/Oracle/Java/ - Windows:
%ProgramFiles%\Java\conf\(Win x64) OR%ProgramFiles(x86)%\java\conf(Win x86)
- Unix/Linux:
- Per JRE instance:
$JRE_TOP/lib/management/(for JRE releases prior to 9)$JRE_TOP/lib/conf/management/(for JRE releases 9 and after)
- Via system property:
-Dcom.oracle.usagetracker.config.file(not supported by SIJS)
Example logging (Linux)
Trace; Scanning paths; se.snow.javascanner.file.UsageTrackingFinder; isUsageTrackingEnabled; usagetracker.properties
found: /etc/oracle/java/usagetracker.properties
Example logging (Windows)
Trace; Scanning paths; se.snow.javascanner.file.UsageTrackingFinder; isUsageTrackingEnabled; usagetracker.properties found: C:\Program Files\Java\conf\usagetracker.properties
4. JDK Mission Control (JMC)
Mission Control is not a JVM runtime feature in newer Oracle JDKs, so it cannot be detected at scan time except in Java 8 releases 8u40–8u202, where it appeared as a commercial feature. Detection in those versions follows the same steps as JFR.
5. MSI Enterprise JRE installer
Detection occurs when any file matching *java*.msi is found during a scan. To exclude specific filenames, define them in the JavaMsiIgnore element with wildcards:
<JavaMsiIgnore>
<Filename>filename-1.msi</Filename>
<Filename>java*.msi</Filename>
</JavaMsiIgnore>Related Articles
Oracle Verified - No data was processed by Snow Inventory Java Scanner 39Number of Views Oracle Verified - The Snow Inventory Java Scanner was not successfully executed on this computer/machine 24Number of Views Snow Inventory Java Scanner security levels and execution behavior 154Number of Views Oracle Verified - No data was processed by Snow Inventory Oracle Middleware Scanner 82Number of Views Manage Java data removal in Snow Inventory Java Scanner for accurate OMO reporting 37Number of Views
Hi, I am Reva - Ask me anything.
No new updates
Thanks for the feedback!
Your feedback has been saved.Rate this response:
Add Additional feedback ( Optional )
Are you sure you want to cancel
the case creation?
Are you sure you want to cancel the case creation?
Are you sure you want to close this case
| Products | Region | Phone Numbers |
|---|---|---|
| FlexNet Operations FlexNet Embedded FlexNet Publisher FlexNet Connect FlexNet Code Insight InstallAnywhere InstallShield |
North America * |
+1 630-332-2513 (toll) +1 877-279-2853 (toll-free in North America) |
| Europe * |
+44 1925 944367 (toll) +44 800 047 8642 (toll-free in Europe) |
|
| Japan * | +81 3-4540-5335 (select option 2) | |
| Australia * |
+61 3 9895 2177 +61 1800 560 603 (toll-free in Australia) |
|
|
Usage Intelligence (formerly
Revulytics) Compliance Intelligence |
Please use the Case Portal to submit your support ticket or reach out to your Revenera contact. | |
Revenera Assistant
Case id: 00001065
Activity: Status change: 2 hours ago