The JobApi::downloadArtifactsFile method uses job name and not job id that obviously means the artifact archive for a successful run of that job name (job name is not unique).
Gitlab API actually provides a method for downloading the artifact archive of any job (by job id):
GET /projects/:id/jobs/:job_id/artifacts
but your java wrapper for that API method, Job::getArtifactsFile, returns an instance of ArtifactsFile with only the file name and size - there is no way to access the input stream of the archive.
Please either add a method like public InputStream getBytes() to the ArtifactsFile class or provide an overloaded JobApi::downloadArtifactsFile that uses job id (and calls the Gitlab API I mentioned above).