Rechercher : dans
Par :

Java: éditer le manifest dans le .jar

Dernière réponse le 3 déc 2007 à 12:29:24 onzeaout, le 8 oct 2007 à 14:43:48 
 Signaler ce message aux modérateurs

Bonjour à tous!
Je travaille sur un projet d'analyses d'images avec Eclipse.
J'ai un programme JAVA me servant à extraire les classes de couleurs et à compter les pixels les contenant d'une image:
[CODE=JAVA]package color;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;

public class colorcounter{

public static void main(String[] args) {

// lecture de l'image
BufferedImage image = null;
try {
image = ImageIO.read(new File("26.jpg"));
} catch (IOException e) {
e.printStackTrace();
return;
}

// Map (rgb)=>count
Map<Integer, Integer> rgbmapcount = new HashMap<Integer, Integer>();

// parcours des pixels de l'image, et creation/mise a jour de la Map
for(int y=0;y<image.getHeight();y++) {
for(int x=0;x<image.getWidth();x++) {
// valeur [a]rgb, codé sur un entier (4 octets)
int rgb = image.getRGB(x,y);

// recherche dans la map
if (!rgbmapcount.containsKey(rgb)) {
rgbmapcount.put(rgb, 1); // n'existe pas => creation
} else {
int previouscount = rgbmapcount.get(rgb);
rgbmapcount.put(rgb, previouscount+1); // n'existe => mise a jour
}
}
}

// Combien de couleurs apparaissent plus de 10 fois ?
int distinctcolor=0;
int pixelcount=0;
for(int rgb:rgbmapcount.keySet()) {
int rgbcount = rgbmapcount.get(rgb);
if (rgbcount<10) continue;
distinctcolor++;
pixelcount+=rgbcount;
}
System.out.println("nombre de couleurs distinctes: "+distinctcolor);
System.out.println("nombre de pixels: "+pixelcount);

// Richesse de la palette
double U = (double)distinctcolor / pixelcount;
System.out.println("Richesse de la palette: "+U);
}

}[/CODE]
Lors de l'exécution de ce programme, j'ai ce message:
[QUOTE]javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at color.colorcounter.main(colorcounter.java:18
)[/QUOTE]
J'ai donc pensé qu'il fallait créer dans le bin du Jdk un fichier .jar contenant la classe concernée et les images à analyser, ce que j'ai fait. (image.jar)
Mais il me faut aussi pour rendre cette archive exécutable modifier le Manifest
(créé par défaut lors de la création de l'archive .jar) pour y introduire le nom de la class concerné.
MANIFEST (.txt):
[QUOTE]Manifest-Version 1.0

Created by: Tonio

Main-Class: colorcounter


[/QUOTE]
avec le saut de page à la dernière ligne.
Je tape donc en ligne de cde: jar cvfm image.jar MANIFEST.MF colorcounter.class 26.jpg

J'obtient un message:
[IMG]http://www.imagup.info/images/06/1191773639_colorjava.jpg[/IMG]
J'ai cherché partout sur le net, dans les TUTO, avec Mr Google et surtout ici même mais sans rien trouver de vraiment explicite.
Les fichiers Manifest ne sont manifestement pas très intéressants (je sais elle était facile :mouarf:)
Aie-je fait une erreur dans l'intitulé? manifest.mf ou manifest.txt ou ????
Ou alors me gourre-je ailleurs??
Faut-il dans le manifeste à la ligne Main-Class préciser le package?
Dois-je aussi préciser le Class-Path?
M'enfin, si déjà il ne reconnait pas mon manifeste....
Merci pour votre aide, si j'arrive (enfin!) à éxecuter mon code, je ferais un ajout ici pour expliquer la méthode en détail, car j'ai remarqué en surfant ici et là que nombre de débutants rament sur cette question de l'utilisation des images avec Eclipse.....

Amicalement

Configuration: Windows XP
Firefox

Meilleures réponses pour « java: éditer le manifest dans le .jar » dans :
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Voir le contenu d'un fichier .jar VoirRien de plus facile que de voir ce que contient un fichier .jar: Renommez-le en .zip et ouvrez-le ! Si vous voulez voir ce que contiennent les programmes java compilés .class, vous devrez utiliser un décompilateur Java tel que JAD:...
Télécharger Crimson Editor VoirCrimson Editor est un éditeur professionnel de code source pour Windows. Ce programme, très léger en terme de taille, peut servir de remplacement au bloc-notes (notepad) de Windows. Il offre de nombreuses et puissantes fonctionnalités pour afficher...
Java - Les packages VoirIntroduction aux packages La programmation Java consiste à créer des classes. Or, étant donné qu'un programme est généralement développé par une équipe de programmeurs, c'est-à-dire plusieurs personnes, le fait de concaténer (mettre bout à bout)...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

lili, le 3 déc 2007 à 08:47:20

J'ai un pb avec java
le problem comment stocker les valeur rgb d'une image dans un tableau 3 dimension?
et a la fin afficher ce tableau dans un repère (x,y,z) x reprèsente R et y represente G et z reprèsente B?
s.v.b.si vous avez un solution please help me pour realiser ma projet de fin d'etude .merci en tous les cas

Répondre à lili

2

 danimo, le 3 déc 2007 à 12:29:24
  • +1

Salut !

... jar cmf nom_manifest.mf.txt

Répondre à danimo
Collection CommentÇaMarche.net