até onde eu sei, não existe um comando em java que faça isso. Você pode fazer duas coisas…1° criar um .bat que execute os comandos de backups e fazer o java chamar esse .bat ou criar alguma entidade que faça a leitura do seu banco e crie insert por insert…
bruxel
uma coisa q vc poderia tentar fazer, mas não sei como o derby se comporta é fazer com que ele zipasse as pastas do banco (acho a menos inviavel).
outra seria vc achar algum comando (nao faço a menor ideia) que gere algo do tipo como o mysql faz, (mysqldump) ele cria um arquivo texto contendo a estrutura das tabelas e os inserts dos dados e apos isto vc compactaria este arquivo, ja que se trata de texto. (acho a mais pratica).
a ultima seria vc utiliazar as classes ResultSetMetaData, DatabaseMetadata, para criar suas proprias estruturas e inclusao de dados em arquivo ou outra base de backup (essa seria a mais dificil, pq vc teria q implementar todas as rotinas).