private static void displayCryptoException(Object originator, Component parent, String title,
			String message, CryptoException ce) {
		String ce_msg = ce.getMessage();
		if (ce_msg.contains("Install the JCE")) {
			File javaHomeDir = new File(System.getProperty("java.home"));
			File libSecurityDir = new File(new File(javaHomeDir, "lib"), "security");
			//@formatter:off
				if (OptionDialog.showYesNoDialog(parent, title,
					"<html><div style='margin-bottom: 20pt'>A problem with the Java crypto subsystem was encountered:</div>" +
						"<div style='font-weight: bold; margin-bottom: 20pt; margin-left: 50pt'>" + ce_msg + "</div>" +
						"<div style='margin-bottom: 20pt'>Which caused:</div>" +
						"<div style='font-weight: bold; margin-bottom: 20pt; margin-left: 50pt'>" + message + "</div>" +
						"<div style='margin-bottom: 20pt'>This may be fixed by installing the unlimited strength JCE into your JRE's \"lib/security\" directory.</div>" +
						"<div style='margin-bottom: 20pt'>The unlimited strength JCE should be available from the same download location as your JRE.</div>" +
						"<div>Display your JRE's \"lib/security\" directory?</div></html>") == OptionDialog.YES_OPTION) {
				//@formatter:on
				try {
					FileUtilities.openNative(libSecurityDir);
				}
				catch (IOException e) {
					Msg.showError(originator, parent, "Problem starting explorer",
						"Problem starting file explorer: " + e.getMessage());
				}
			}
			return;
		}
		Msg.showWarn(originator, parent, title, message + ": " + ce_msg);
	}
Displays a filesystem related {@link Throwable exception} in the most user-friendly manner
possible, even if we have to do some hacky things with helping the user with
crypto problems.

@param originator
           a Logger instance, "this", or YourClass.class
@param parent
           a parent component used to center the dialog (or null if you
           don't have one)
@param title
           the title of the pop-up dialog (main subject of message)
@param message
           the details of the message
@param throwable
           the Throwable that describes the cause of the error
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FSUtilities.java