JarFile - Não consigo criar um jar em código

Oi,
To com dificuldade para acertar uma classe que deveria gerar um jar. Não consigo entender a API. Segue código caso alguém possa me ajudar.

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.jar.JarFile;

public class GeraJar
{
    public static void main(String args[])
    {
        /* Tentei também com os *.java  e não funcionou */
        String[] aFileNames = {
            "Classe1.class",
            "Classe2.class",
            "Classe3.class",
            "Classe4.class",
            "Classe5.class",
	};
        JarFile novoJar = null;
        ClassLoader cl = Thread.currentThread().getContextClassLoader();
		
        File file = new File("/C:/Documents and Settings/COMPUTADOR/Desktop/Projeto/teste.jar");
        URL url;
        try 
        {
            url = file.toURL();
        }
        catch (MalformedURLException e1) 
       {
            e1.printStackTrace();
       }
       try 
       {
           novoJar = new JarFile(file);
       } 
        catch (IOException e) 
        {
             System.out.println("Erro depois do novoJar");
             e.printStackTrace();
        }
        String[] astrArgs = null;
        String[] args2 = null;
			
        astrArgs = new String[3+aFileNames.length];
        args2 = new String[15];
			
        astrArgs[0] = "cfm";
		
        args2[1] = novoJar.getName();

        int i = 2;
        args2[i++] = "MANIFEST.MF";

        for (int j=0; j<aFileNames.length; j++)
       {
            args2[i+j] = aFileNames[j];
       }
		
       sun.tools.jar.Main jartool = new sun.tools.jar.Main(System.out, System.err, "jar");
       boolean ok = jartool.run(args2);
       if (!ok)
           System.out.println("Jar tool invocation failed");
       }
}

Por que você precisa escrever uma classe pra fazer o que o comando jar já faz pra você?

A idéia é que a aplicação que o cliente vai rodar faça isso, portanto não posso pensar em linha de comando, entende? A princípio o cliente só tem JRE.