Troubleshooting: java.io.FileNotFoundException classes.jsa
In Liquibase Enterprise 9.x installations we have seen instances of this error:
Caused by: java.io.FileNotFoundException: C:\Users\Administrator\LiquibaseDesktop\jre\bin\server\classes.jsa (The system cannot find the file specified)
This issue is likely related to your machine's environment, with another application interfering with writing or accessing the Java Class Data Sharing archive file (jre\bin\server\classes.jsa).
One root cause for this issue may be the Dynatrace OneAgent - there is a known compatibility issue between Dynatrace OneAgent and classes.jsa. More details can be found here:
OneAgent Process Injection Incompatibility with classes.jsa (ONE-19712)
Troubleshooting Steps:
This issue does seem to be resolved at least on Dynatrace OneAgent Version 1.333.55.
Check whether Dynatrace OneAgent is installed:
Look for a service named "Dynatrace OneAgent"
Check for a directory such as
C:\Program Files\dynatrace\oneagentorC:\apps\dynatrace-oneagent\agent
If Dynatrace OneAgent is running, perform all of these steps (Note: just stopping service is not sufficient):
Temporarily stop the Dynatrace OneAgent service.
Rename the Dynatrace OneAgent directory.
Install Liquibase.
Once the installation has completed successfully, rename the directory back to its original name and restart the Dynatrace service.
Additional Troubleshooting Steps if Dynatrace OneAgent is not installed
Check whether Windows Defender is running
If running, the following command can check for detections
Get-MpThreatDetection | Sort-Object InitialDetectionTime -Descending | Select-Object -First 5
Check for third-party security software
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, Publisher | Sort-Object Publisher | Where-Object { $_.DisplayName -ne $null }These items could potentially be culprits:
Dynatrace OneAgent
CrowdStrike Falcon
SentinelOne
Carbon Black
Trend Micro
Cylance
Sophos
McAfee/Trellix
If the culprit cannot be identified from the installed software list, run Process Monitor (ProcMon) filtered on
Path contains .jsawhile reproducing the error — the Process Name column will show exactly what is intercepting the write.