"Java" is REW's name for javasound API, part of OpenJDK, the main java distribution. The javasound API links to native libraries shipped in OpenJDK builds for various OSes - the native library in OSX OpenJDK build uses coreaudio devices
https://github.com/openjdk/jdk/tree...e428/src/java.desktop/macosx/native/libjsound , in linux it uses alsa hw devices (no PCM devices)
https://github.com/openjdk/jdk/tree...de428/src/java.desktop/linux/native/libjsound , in windows it uses DirectSound
https://github.com/openjdk/jdk/tree...428/src/java.desktop/windows/native/libjsound .
Fortunately javasound can be extended with external SPI providers
https://www.baeldung.com/java-spi implementing the javasound API which can link to custom native libraries. The latest REW is shipped with my CleanSine javasound provider
https://github.com/pavhofman/csjsound-provider which on windows links to WASAPI exclusive native library (DLL)
https://github.com/pavhofman/csjsound-wasapi (devices provided by that provider are prefixed with "EXCL:" in the REW device list). On amd64 linux it links to ALSA PCM native library (.so)
https://github.com/pavhofman/csjsound-alsapcm (devices prefixed with "PCM:") which offers custom PCM devices defined in .asoundrc configs.
ASIO due to its duplex bufferSwitch callback is largely incompatible with the javasound API (which uses independent playback and capture devices), therefore the third-party java ASIO connector has its own java API
https://github.com/mhroth/jasiohost . John Mulcahy, when incorporating this API into REW, had to add a selector for which java audio API to use, present only in the windows build of REW. Since the added WASAPI exclusive/ALSA PCM provider implements the stock javasound API, the devices discovered by wasapi exclusive/ALSA PCM are listed under the java API selector, named appropriately.