Jarsigner est conçu pour signer des fichiers JAR et ne sait rien des APK et d'Android, alors qu'apksigner est conçu pour signer des fichiers APK et connaît les exigences qu'Android impose aux signatures d'APK. Par exemple, jarsigner ne produit pas les signatures APK Signature Scheme v2 introduites dans Android Nougat, alors qu'apksigner le fait. Un autre exemple est que jarsigner ne sait pas que les APK qui doivent s'exécuter sur le niveau d'API 17 ou inférieur ne doivent pas utiliser les digests SHA-256 dans leurs signatures, alors qu'apksigner le sait.
Si vous souhaitez signer un APK à l'aide de l'un de ces outils, utilisez apksigner.
EDIT : Voici la documentation officielle sur la signature en ligne de commande : https://developer.Android.com/studio/publish/app-signing.html#signing-manually