Hi,
ich glaube so richtig plattformunabhängig wird das schwer. Unter Windows wird auf Webcams i.d.R. mittels DirectX bzw. früher auch mal mittels vfw (Video For Windows) zugegriffen. Bilder schießen klappt darüber auch, allerdings dürftest Du dabei auch auf Twain zurückgreifen können.
Ich behaupte hier einfach mal, dass diese Schnittstellen sich nicht auf sehr vielen Plattformen finden lassen. Eine allgemeine Java-eigene HW-Abstraktionsschicht für solche Devices ist mir nicht bekannt.
Hier müsstest Du schauen, ob USB Webcams ihre Videos/Bilder über einen bestimmten Standard zur Verfügung stellen (afaik nicht der Fall). Wenn es den gibt, musst Du halt eine Java-Kapselung davon finden.
Davon ausgehend, dass es keine solche Möglichkeit gibt, bleibt Dir der Umweg über JNI. Dabei kannst Du dann auf eine dyn. Bibliothek der Zielplattform (z.B. eine Dll unter Windows oder ein .so unter Linux) zurückgreifen. Diese wiederum kann dann nativ auf das API des OS zugreifen und somit unter Verwendung des Treibers die Daten der Kamera liefern.