public static void createLink(Path link, Path target) {
		if (!Files.exists(link)) {
			// On Windows we use junction for directories because their
			// creation doesn't require any special privileges.
			if (getOS() == OS.windows && Files.isDirectory(target)) {
				if (createJunction(link, target.toAbsolutePath())) {
					return;
				}
			} else {
				if (createSymbolicLink(link, target.toAbsolutePath())) {
					return;
				}
			}
			throw new ExitException(BaseCommand.EXIT_GENERIC_ERROR, "Failed to create link " + link + " -> " + target);
		}
	}
Runs the given command + arguments and returns its output (both stdout and
stderr) as a string

@param cmd The command to execute
@return The output of the command or null if anything went wrong
src/main/java/dev/jbang/util/Util.java