Você não pode usar new File (URL) para pegar um arquivo que está dentro de um JAR; esse arquivo tem de estar fora.
Se você precisa acessar esse arquivo só para leitura, você precisa usar getResourceAsStream, que já lhe retorna uma InputStream. Se precisar modificar o tal arquivo, aí fica complicado, porque ele está dentro do Jar.
Cópia de um diretório? Você precisa listar o que está dentro desse diretório? Nesse caso você precisa acessar o arquivo .jar, e usar algumas classes do pacote java.util.zip: ZipFile e ZipInputStream. (Você pode usar JarFile e JarInputStream mas não é necessário, porque são apenas as classes ZipFile e ZipInputStream com a capacidade de analisar arquivos MANIFEST.MF, que raramente é necessária.)