public static void packClassFilesIntoJar( @NotNull String[] firstPackageDirPaths, @NotNull String[] libFirstPackageDirPaths, @NotNull File jarFile) throws IOException { final JarOutputStream jos = new JarOutputStream(new FileOutputStream(jarFile)); try { for (String path : firstPackageDirPaths) { final File firstPackageDir = new File(path); if (firstPackageDir.exists()) { addFileToJar(jos, firstPackageDir, firstPackageDir.getParentFile(), true); } } for (String path : libFirstPackageDirPaths) { final File firstPackageDir = new File(path); if (firstPackageDir.exists()) { addFileToJar(jos, firstPackageDir, firstPackageDir.getParentFile(), false); } } } finally { jos.close(); } }