For those who may be interested I have been developing a Java library that is designed to work on all single board computers. It makes use of dynamically loaded providers for the actual device communication. There is an in-built provider that supports GPIO and PWM via sysfs, I2C via SMbus and SPI via kernel ioctl (via a small JNI library).
This in-built provider should be portable to any Linux based SBC. The library currently provides support for BBB, Pi, Odroid C2, CHIP, Asus TinkerBoard as well as Arduino connected via USB (these are the boards that I own).
For the Beaglebone Black you can use either the in-built provider or alternatively one based on the BBBIOlib that uses memory mapped GPIO access for high performance.
Feedback is very much welcome.