Alloyはjar一個で配布してるので、JNIのDLLとかはどうしてるのかなぁと思ってたんだけど、確認したらjarから一時ディレクトリにコピーしてそこからロードするようになっていた。 edu/mit/csail/sdg/alloy4whole/ の以下の部分が該当箇所。

// Copy required files from the JAR
final String binary = alloyHome() + fs + "binary";


// Add the new JNI location to the java.library.path
try {
System.setProperty("java.library.path", binary);
// The above line is actually useless on Sun JDK/JRE (see Sun's bug ID 4280189)
// The following 4 lines should work for Sun's JDK/JRE (though they probably won't work for others)
String[] newarray = new String[]{binary};
java.lang.reflect.Field old = ClassLoader.class.getDeclaredField("usr_paths");
} catch (Throwable ex) { }