Maison > Java > javaDidacticiel > le corps du texte

Comment éviter les bizarreries cachées lors de la création de fichiers JAR avec JarOutputStream ?

Linda Hamilton
Libérer: 2024-11-02 10:59:30
original
948 Les gens l'ont consulté

How to Avoid Hidden Quirks When Creating JAR Files with JarOutputStream?

Création de fichiers JAR avec JarOutputStream : dépannage des bizarreries cachées

Bien que l'utilitaire JarOutputStream semble simple pour créer des fichiers JAR par programme, il recèle plusieurs bizarreries non documentées qui peut compromettre l’intégrité des archives générées. Ces bizarreries se manifestent dans trois domaines spécifiques :

  • Les noms de répertoires nécessitent un / final, garantissant qu'ils se terminent par des répertoires connus dans le JAR.
  • Les séparateurs de chemin doivent être désignés par /, et non par le spécifique à la plate-forme.
  • Les entrées ne doivent pas commencer par une barre oblique /.

Pour garantir une création correcte du JAR, respectez les directives suivantes :

<code class="java">public void run() throws IOException {
    Manifest manifest = new Manifest();
    // ... (populate manifest)

    JarOutputStream target = new JarOutputStream(
        new FileOutputStream("output.jar"),
        manifest
    );

    add(new File("inputDirectory"), target);
    target.close();
}

private void add(File source, JarOutputStream target) throws IOException {
    String name = source.getPath().replace("\", "/");

    if (source.isDirectory()) {
        if (!name.endsWith("/")) {
            name += "/";
        }

        JarEntry entry = new JarEntry(name);
        // ... (set entry properties)

        target.putNextEntry(entry);
        target.closeEntry();

        for (File nestedFile : source.listFiles()) {
            add(nestedFile, target);
        }
    } else {
        JarEntry entry = new JarEntry(name);
        // ... (set entry properties)

        target.putNextEntry(entry);
        try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(source))) {
            // ... (write file to JAR entry)
        }

        target.closeEntry();
    }
}</code>
Copier après la connexion

Par en adhérant à ces directives, vous pouvez créer avec précision des fichiers JAR qui seront extraits et fonctionneront comme prévu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!