private static File getJarFile() {
		try {
			// get location of FlatLaf jar
			CodeSource codeSource = FlatNativeLibrary.class.getProtectionDomain().getCodeSource();
			URL jarUrl = (codeSource != null) ? codeSource.getLocation() : null;
			if( jarUrl == null )
				return null;

			// if url is not a file, then we're running in a special environment (e.g. WebStart)
			if( !"file".equals( jarUrl.getProtocol() ) )
				return null;

			File jarFile = new File( jarUrl.toURI() );

			// if jarFile is a directory, then we're in a development environment
			if( !jarFile.isFile() )
				return null;

			return jarFile;
		} catch( Exception ex ) {
			LoggingFacade.INSTANCE.logSevere( ex.getMessage(), ex );
			return null;
		}
	}
Search for a native library beside the jar that contains this class
(usually the FlatLaf jar).
The native library must be in the same directory (or in "../bin" if jar is in "lib")
as the jar and have the same basename as the jar.
If FlatLaf jar is repackaged into fat/uber application jar, "-flatlaf" is appended to jar basename.
The classifier and the extension are appended to the jar basename.

E.g.
    flatlaf-3.1.jar
    flatlaf-3.1-windows-x86_64.dll
    flatlaf-3.1-linux-x86_64.so
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeLibrary.java