9128 Rate this article:

Mac OS Catalina 10.15, ENVI/IDL, and Legacy Java 6 Dependencies

Apple's release of Mac OS 10.15 Catalina has brought many changes to the operating system. We discovered these issues in our beta tests of Catalina, many of which are related to Catalina's requisite for 64-bit applications. We have created a patch for this issue that will be released soon. You can directly request this patch by contacting L3Harris Geospatial Technical Support.

The issue this article addresses is in regard to ENVI/IDL's current dependency on legacy Java 6 libraries. Java 6 cannot currently be installed on Mac OS Catalina because there is a newer version of Java installed on the system. Attempts to reinstall legacy Java libraries upon upgrade of the OS may result in errors restricting installation. Some users have also experienced their previously existing legacy Java libraries have been moved or quarantined. This, in addition to the 64-bit applescript issue, renders ENVI/IDL unusable.

Although Mac OS Catalina is unsupported, we have found a workaround that has alleviated this issue for some users. This is an unofficial workaround and users should be aware to attempt this with knowledge that it is at their own risk.

The workaround creates an Applescript that removes the installation limits from Java for Mac OS 2017-001. The Applescript creates a new modified Java installer package file, JavaPackageforModifiedforCatalina.pkg which should work for installation of Java 6.

We have provided step-by-step suggestion on creating this Applescript below (NOTE: this article assumes the user has obtained the legacy Java for OS X 2017-001 from Apple Support):

1. Open Finder
2. Navigate to Applications > Utilities > Script Editor
3. Select "New Document" button
4. Copy the following text to the Script Editor Document:

set theDMG to choose file with prompt "Please select javaforosx.dmg:" of type {"dmg"}
do shell script "hdiutil mount " & quoted form of POSIX path of theDMG
do shell script "pkgutil --expand /Volumes/Java\\ for\\ macOS\\ 2017-001/JavaForOSX.pkg ~/tmp"
do shell script "hdiutil unmount /Volumes/Java\\ for\\ macOS\\ 2017-001/"
do shell script "sed -i '' 's/return false/return true/g' ~/tmp/Distribution"
do shell script "pkgutil --flatten ~/tmp ~/Desktop/ModifiedJava6Install.pkg"
do shell script "rm -rf ~/tmp"
display dialog "Modified ModifiedJava6Install.pkg saved on desktop" buttons {"Ok"}


5. Select Script > Compile from the menu, or select the "Hammer" button to ensure the above copy and pasted code compiles.
6. Select Script > Run from the menu, or select the "Arrow" run button.
7. Running the script will create a ModifiedJava6Install.pkg on your desktop. Run this ModifiedJava6Install.pkg to install Java 6.

This should work to enable adding legacy Java onto the Catalina Mac OS device, ultimately enabling you to use ENVI/IDL. A reboot should not be required upon completing the steps above.

NOTE: If issues persist and you are still unable to access ENVI/IDL, you also need to reinstall XQuartz 2.7.11 after upgrading to Catalina. The suggested workflow in this regard is to:
A. Reinstall legacy Java using the above workaround suggestion
B. Reinstall XQuartz 2.7.11
C. Reboot the machine
D. Attempt to access ENVI/IDL

Written by JB - 10/09/2019

Please login or register to post comments.