The problem with RAR is that it's a closed format, so any library either needs to get a license or reverse engineer the format. The latter is (most likely) illegal so that's why there are so few libraries available.
As for using JNI, that would require a 3rd party library of which you can call functions to un-rar files. I doubt there is one though, as it has the same problems as Java libraries.
Perhaps you can use Runtime.exec or ProcessBuilder? In which case I suggest reading
this article.