I would advise very strongly against implementing a custom taper, as the driver/taper protocol is internal to Amanda, and will go away completely in a subsequent release.
You're talking about the Device API, not the Driver API. You could implement this with the JNI, or you could implement it via some sort of IPC, with the device (in C) interfacing with a separate Java process that communicates with the storage API.
If you do decide to proceed, please subscribe to the amanda-hackers mailing list and keep us abreast of your progress. These forums are mostly for user support.
If you don't mind my asking, what sort of API are you interfacing to? Would you be willing to open-source your work?
Storage Software Engineer