public static boolean installExtensionFromArchive(ExtensionDetails extension) {
		if (extension == null) {
			log.error("Extension to install cannot be null");
			return false;
		}

		String archivePath = extension.getArchivePath();
		if (archivePath == null) {
			log.error("Cannot install from archive; extension is missing archive path");
			return false;
		}

		ApplicationLayout layout = Application.getApplicationLayout();
		ResourceFile extInstallDir = layout.getExtensionInstallationDirs().get(0);
		String extName = extension.getName();
		File extDestinationDir = new ResourceFile(extInstallDir, extName).getFile(false);
		File archiveFile = new File(archivePath);
		if (install(archiveFile)) {
			extension.setInstallDir(new File(extDestinationDir, extName));
			return true;
		}

		return false;
	}
Installs the given extension from its declared archive path
@param extension the extension
@return true if successful
Ghidra/Framework/Project/src/main/java/ghidra/framework/project/extensions/ExtensionInstaller.java