Ich bin auf der Suche nach Beispielen bzw. Anleitungen,
wie man aus einer JAR-Datei byteweise Dateien auslesen
kann. z.b.: test.jpg
Kann mir jemand auf meiner Suche weiterhelfen, denn
bisher wurde ich nicht fündig.
Vielen Dank im vorraus.
MfG Thomas
FILE *fp;
fp = fopen("datei.jar","rb");
und dann fread(); ...
Markus
Hallo Markus.
In einem JAR-File können mehrere Dateien enthalten sein.
Bsp.: in test.jar sind : test.class , test2.class, test.jpg
Dieses JAR-File wird vom Handy gestartet und es soll
dann in einer Java-Klasse das jpeg-File angezeigt werden.
Da es sich um eine abgespeckte Version handelt und das
jpeg-Format von createImage nicht unterstützt wird, jedoch
bmp, wird über eine native Methode die in C implementiert
wurde ein Converter gestartet, der jpeg in bmp wandelt und
zurückgibt. Nun ist das Problem, dass das jpg-File im JAR-
Archiv liegt und nur dieses jpg-file eingelesen werden soll in
einen Buffer.
Vielleicht hilft diese erweiterte Beschreibung meines Probs
bissel weiter, zu verstehen, was ich erreichen bzw. hanben
möchte.
MfG T. F.
Um solche Probleme geht es hier aber nicht, hier geht es nur um ANSI-C.
Hier kann man dir höchstens sagen, wie man eine Datei öffnet, und wie
man einzelne Bytes oder auch einzelne Zeilen aus ihr liest, alles andere
ist kein ANSI-C mehr, schon gar nicht der Aufbau eines JAR-Archives.
M. Seifert
Aha.
Du bist hier Offtopic, hier gehts um C als Sprache (so wie sie von ISO, ANSI
oder Kernighan und Ritchie definiert wurden), nicht darum wie man irgendwelche
merkwuerdigen Datenformate auseinander nimmt.
FaUl
end
This article does not support incompatible and broken newsreaders.
--
Windows 95/98/ME/NT/2000: "A 32 bit extension and graphical shell,
for a 16 bit patch to an 8 bit operating system, originally
coded for a 4 bit microprocessor, written by a
2 bit company, that can't stand 1 bit of competition."
>Vielleicht hilft diese erweiterte Beschreibung meines Probs
>bissel weiter, zu verstehen, was ich erreichen bzw. hanben
>möchte.
gibts es von SUN kein Kommandozeilen Tool, mit dem man den Inhalt von
JAR Files entpacken kann?
Was vermutlich auch noch dazu kommt ist, dass das JPEG File beim
Erzeugen des JAR Archives sicherlich noch mit irgendeinen Algo
komprimiert wird?
Gruss
Andy
> gibts es von SUN kein Kommandozeilen Tool, mit dem man den Inhalt von
> JAR Files entpacken kann?
> Was vermutlich auch noch dazu kommt ist, dass das JPEG File beim
> Erzeugen des JAR Archives sicherlich noch mit irgendeinen Algo
> komprimiert wird?
Ein jar-file ist nix anderes als ein zip-Archiv ...
Gruß,
Harald
--
Bored? Want hours of entertainment?
Just set the initdefault to 6!
Whee!
Thomas Frey <Thoma...@mch.siemens.de> wrote:
> Ich bin auf der Suche nach Beispielen bzw. Anleitungen,
> wie man aus einer JAR-Datei byteweise Dateien auslesen
> kann. z.b.: test.jpg
Die beiden Buchstaben "c" in den Worten "ich" und "Suche" reichen
nicht aus, dass deine Frage dadurch in de.comp.lang.c OnTopic werden
koennte ...
Tschuess,
Juergen Ilse (il...@usenet-verwaltung.org)
--
Das Netz ist Freude. Es ist Ekstase, die jeden einzelnen Nerv erglühen
läßt. Es ist Duft, den man fühlt. Es ist ein Bild, das man riecht.
Es ist Erfüllung - ein Geschmack, neben dem alles andere schal ist.
("Netzreiter-Preisung" aus dem Buch "Der Netzparasit" von Andreas Brandhorst)
> Thomas Frey <Thoma...@mch.siemens.de> wrote:
>
> > Ich bin auf der Suche nach Beispielen bzw. Anleitungen,
> > wie man aus einer JAR-Datei byteweise Dateien auslesen
> > kann. z.b.: test.jpg
>
> Die beiden Buchstaben "c" in den Worten "ich" und "Suche" reichen
> nicht aus, dass deine Frage dadurch in de.comp.lang.c OnTopic werden
> koennte ...
_Diese_ Frage lässt sich aber problemlos mit ANSI C beantworten - und
das hat Markus auch getan.
Dass der Poster mehr wollte, kam erst viel später in diesem Thread zum
Ausdruck. Zu einem dieser späteren Postings wäre Deine Anmerkung korrekt
gewesen, nicht aber zu diesem hier.
Gruß. Claus
Hallo Andy und Harald.
Es gibt solche Tools zum extrahieren von Dateien aus jar-Archiven,
jedoch ist der Nutzen für eine MCU sehr gering. Wie ich mich schon
kurze Zeit nach meinem ersten Posting korrigierte (um hier mal den
Wind aus den Segeln einiger zu nehmen) handelt es sich bei meinem
Problem um einen Converter der in C implementiert wurde. Dieser
liefert an eine Java-Methode ein Bildobjekt zurück.
Da diese test.jpg Datei mit den anderen *.class Dateien in einem
JAR-Archive zusammengefasst zur Verfügung stellen, muss der
Converter in der Lage sein, dieses jpeg-File aus dem JAR-Archive
extrahieren zu können und somit zu lesen. Ich denke, da reicht ein
"einfaches" fopen nicht aus. Wenn es sich wie Harald meinte um ein
zip-Archiv handelt, dann eben dieses.
Sollte mir jemand weiterhelfen können, würde ich mich sehr freuen.
Bitte laßt nicht eueren Frust an mir aus, weil ich event. nicht 100%ig
die richtige Newsgroup erwischte.
MfG Thomas F.
> In einem JAR-File können mehrere Dateien enthalten sein.
Du fragtest nach byteweisem Auslesen eines jar-Archivs.
Das kannst Du mit meiner Methode machen. Ich wusste nicht,
dass Du eigentlich nur das Dateiformat eines jar-ARchivs
wissen wolltest
Evtl. wirst Du bei http://www.wotsit.org fündig.
Markus
>Es gibt solche Tools zum extrahieren von Dateien aus jar-Archiven,
>jedoch ist der Nutzen für eine MCU sehr gering. Wie ich mich schon
>kurze Zeit nach meinem ersten Posting korrigierte (um hier mal den
>Wind aus den Segeln einiger zu nehmen) handelt es sich bei meinem
>Problem um einen Converter der in C implementiert wurde. Dieser
>liefert an eine Java-Methode ein Bildobjekt zurück.
Warum liest du das Bild nicht einfach direkt per Java aus? Da gibt es
nämlich (man sollte es nicht für möglich halten) tatsächlich Methoden
dafür. http://developer.java.sun.com/developer/qow/archive/76/
>Da diese test.jpg Datei mit den anderen *.class Dateien in einem
>JAR-Archive zusammengefasst zur Verfügung stellen, muss der
>Converter in der Lage sein, dieses jpeg-File aus dem JAR-Archive
>extrahieren zu können und somit zu lesen.
Warum sollte ein converter aus Archiven lesen können?
Was ist denn das für eine kaputte Architektur?
--
"Source port zero is illegal. USwest has a sysadmin who loves source port zero.
So about 90% of the source port zero things I see here are from either Qwest or
USwest. DNS is so robust, that they don't notice that many of their nameservers
are totally ineffective." -- Evi Nemeth, CAIDA at NANOG24
Es gibt immer wieder Leute, die meinen, sie müssen einem dumm kommen.
Vielleicht ist meine Beschreibung wirklich nicht zu verstehen, aber dann
sollte man sich vielleicht zurückhalten und gegebenfalls ein zweites mal
lesen.
Weiterhin sollte man zwischen unterscheiden zwischen Javaumgebungen
für mobile Endgeräte (siehe unten) und für Desktop Maschinen. Erstere
bieten nur einen Bruchteil an Funktionen. Daher auch die Auslagerung in
C-Funktionen.
>
> >Da diese test.jpg Datei mit den anderen *.class Dateien in einem
> >JAR-Archive zusammengefasst zur Verfügung stellen, muss der
> >Converter in der Lage sein, dieses jpeg-File aus dem JAR-Archive
> >extrahieren zu können und somit zu lesen.
>
> Warum sollte ein converter aus Archiven lesen können?
> Was ist denn das für eine kaputte Architektur?
Mag sein, dass die neuen javafähigen Handy auf einer kaputten Architektur
basieren,
beschwerde bitte bei Sun und Infineon abgeben und nicht bei mir, da ich
damit nur
arbeiten muss.
> --
> "Source port zero is illegal. USwest has a sysadmin who loves source port
zero.
> So about 90% of the source port zero things I see here are from either
Qwest or
> USwest. DNS is so robust, that they don't notice that many of their
nameservers
> are totally ineffective." -- Evi Nemeth, CAIDA at NANOG24
MfG Thomas
Hallo Markus.
Vielen Dank für Deinen Tip. Ich werde es mir mal ansehen.
Noch schnell etwas zu meinem eigentlichen Thema. Vielleicht
ist wirklich noch niemend damit in Berührung gekommen, dass
man gewisse Funktionen in C schreibt weil es etwas vergleichbares
in Java nicht gibt und dann über ein Java native interface darauf zugreift.
Aber eine Funktion in C wird sicher mal jemand erstellt haben, mit
der man u.a. eine einzelne Datei, die in einem JAR- oder was auch
immer für einem Archiv abgelegt wurde ausließt.
Gruß Tom
Auslesen dürfte mit wotsit's Hilfe auch kein Problem sein. Aber Du mußt die
einzelnen Dateien ja dann noch entpacken, oder? Und zip dürfte lizensiert
sein.
Jirka
> Noch schnell etwas zu meinem eigentlichen Thema. Vielleicht
> ist wirklich noch niemend damit in Berührung gekommen, dass
> man gewisse Funktionen in C schreibt weil es etwas vergleichbares
> in Java nicht gibt und dann über ein Java native interface darauf zugreift.
> Aber eine Funktion in C wird sicher mal jemand erstellt haben, mit
> der man u.a. eine einzelne Datei, die in einem JAR- oder was auch
> immer für einem Archiv abgelegt wurde ausließt.
Sicher wird das schon mal jemand gemacht haben. Für ein bestimmtes
Betriebssystem und einen bestimmten Compiler. Eine allgemein gültige
ANSI-Lösung wird aber höchstwahrscheinlich noch niemand erstellt haben -
weil es keine gibt.
Außerdem geht es bei Deinem Problem nicht um C, sondern um die
Implementierung eines bestimmten Algorithmus.
Jetzt klar, warum Du hier Off Topic bist?
Gruß. Claus