Pues con Java no te sabría comentar exactamente, pero me hago a la idea que la interfaz agi nos va a dar igual como esté programado el script que la forma de trabajar va a ser la misma.
El prueba-java.agi ha de estar en el directorio donde se encuentren los AGIs, esto lo miras en /etc/asterisk/asterisk.conf. Y es que va a depender del paquete Asterisk que estes usando (A@H, Debian, AstLinux, ...), por ejemplo en mis máquinas suelen estar alojados en /var/lib/asterisk/agi-bin
Luego el prueba-java.agi ha de tener permisos de ejecución para el mismo usuario que ejecuta el asterisk. Puede ser que tengas permisos de ejecución para root y el servicio Asterisk lo ejecute el usuario asterisk, entonces no va a funcionar.
Lo que suelo hacer antes de probar el AGI desde el Dialplan, es ejecutarlo desde la consola. No hay problema ya que las salidas/entradas las hace por stdin/stdout y esto me sirve para ver si tiene algún error de sintaxis.
Y ya por último desde el Dialplan, tal como dices
exten => 1,1,Answer
exten => 1,2,AGI(prueba-java.agi)
exten => 1,3,Hangup
Si quieres ver en el CLI (asterisk -vvvvvvr) mensajes de depuración, lo puedes hacer ejecutando dentro del prueba-java.agi el comando verbose con el string de depuración que quieras poner.
Espero que sirva,
PD: He buscado un poco por internet y he visto este link, http://asterisk-java.sourceforge.net/tutorial.html, está pensado para FastAGI que es parecido pero con ejecución vía TCP/IP.