X
131361

macOS Catalina 10.15, ENVI/IDL, and Legacy Java 6 Dependencies

This article addresses ENVI/IDL's current dependency on legacy Java 6 libraries. Java 6 is used by the IDL Development Environment, by ENVI, bridge processes, as well as some newer graphics routines. L3Harris Geospatial Development is working to move off this legacy Java 6 dependency, but for now you will require this version to be installed on your MacOS.

Java 6 cannot currently be installed on macOS 10.15 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 renders ENVI/IDL unusable. If you are seeing warning icons indicating you cannot place Java onto the disk because a newer version of the package is already installed, such as:

Or if you have installed IDL 8.7.3 or ENVI 5.5.3, and when you go to double-click on an IDL or ENVI icon within Finder, you receive an error, such as:
'To open "idle.darwin.x86_64" you need to install the legacy Java SE 6 runtime.'

You will need to install Legacy Java libraries to open ENVI/IDL. Click "More Info..." to visit the Apple download site to access this legacy Java dependency.

 

We have found a workaround provided below 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 macOS 2017-001. The AppleScript creates a new modified Java installer package file, JavaPackageforModifiedforCatalina.pkg which should work for installation of Java 6. (NOTE: this article assumes the user has obtained in installed the legacy Java for OS X 2017-001 from Apple Support):

1. Open Script Editor. This can be found via Finder, by navigating to Applications > Utilities > Script Ediitor, or from Launchpad. The icon looks like this: 


2. If a new document doesn’t open up automatically, Select "New Document":

3. 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"}

 

4. Select Script > Compile from the menu, or select the "Hammer" button to ensure the above copy and pasted code compiles:

 

The text coloring will change to indicate it has compiled:


 

5. Select Script > Run from the menu, or select the "Arrow" run button in the menu bar. This will open a window prompting you to select the JavaForOSX.dmg file to create a modified JavaForOSX.pkg file:

Navigate to the location of this file, e.g. /Downloads and select JavaForOSX.dmg and hit "Choose":

 

 

The ModifiedJava6Install.pkg file will automatically save to your desktop.

6. Right-click on the ModifiedJava6Install.pkg file and select "Open With" to open with the default installer:

 

7. Run through the installer steps, accept the T&As, and when asked to select a Destination, you will now be able to move past the warning and select your Disk:

Click Continue and install - you will be prompted to enter your password. Once installation is successful, close the installer. 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.

8. Attempt to open up ENVI/IDL. You should be able to successfully open IDL Development Environment now that Java 6 is installed. If you run into issues, contact us.

 

NOTE: If issues persist and you are still unable to access ENVI/IDL, you may also need to reinstall XQuartz 2.7.11 after upgrading to macOS 10.15 Catalina. The suggested workflow can be found in this help article. Basic steps are as follows: 

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 Jenny Bloom - 2/14/2020