Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dateien byteweise aus JAR-FILES auslesen

1 view
Skip to first unread message

Thomas Frey

unread,
Nov 12, 2002, 9:18:24 AM11/12/02
to
Hallo.

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


Markus Becker

unread,
Nov 12, 2002, 9:34:18 AM11/12/02
to
Thomas Frey wrote on Tue, 12 Nov 2002 15:18:24 +0100:
> Hallo.
>
> Ich bin auf der Suche nach Beispielen bzw. Anleitungen,
> wie man aus einer JAR-Datei byteweise Dateien auslesen

FILE *fp;

fp = fopen("datei.jar","rb");

und dann fread(); ...

Markus

Thomas Frey

unread,
Nov 12, 2002, 11:10:08 AM11/12/02
to

"Markus Becker" <yeti...@gmx.de> wrote in message
news:aqr3ha$c026j$1...@ID-30313.news.dfncis.de...

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.


M. Seifert

unread,
Nov 12, 2002, 11:31:03 AM11/12/02
to
Thomas Frey schrieb:

> 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

Immo 'FaUl' Wehrenberg

unread,
Nov 12, 2002, 11:40:07 AM11/12/02
to
begin followup to the posting of Thomas Frey

>
> "Markus Becker" <yeti...@gmx.de> wrote in message
> news:aqr3ha$c026j$1...@ID-30313.news.dfncis.de...
>> Thomas Frey wrote on Tue, 12 Nov 2002 15:18:24 +0100:
>> > Hallo.
>> >
>> > Ich bin auf der Suche nach Beispielen bzw. Anleitungen,
>> > wie man aus einer JAR-Datei byteweise Dateien auslesen
>>
>> 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.

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."

Andy Dingfelder

unread,
Nov 12, 2002, 12:02:59 PM11/12/02
to
Hallo Thomas,

>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


Harald Wenninger

unread,
Nov 12, 2002, 12:33:41 PM11/12/02
to
Andy Dingfelder schrieb:

> 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!

Juergen Ilse

unread,
Nov 12, 2002, 12:17:07 PM11/12/02
to
Hallo,

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)

Claus Reibenstein

unread,
Nov 13, 2002, 2:59:20 AM11/13/02
to
Juergen Ilse schrieb:

> 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

Thomas Frey

unread,
Nov 13, 2002, 3:35:18 AM11/13/02
to

"Harald Wenninger" <wenn...@informatik.tu-muenchen.de> wrote:
> Andy Dingfelder schrieb:
>
> > 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 ...

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.


Markus Becker

unread,
Nov 13, 2002, 4:36:42 AM11/13/02
to
Thomas Frey wrote on Tue, 12 Nov 2002 17:10:08 +0100:

> 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

Felix Deutsch

unread,
Nov 13, 2002, 5:34:18 AM11/13/02
to
Thomas Frey wrote:

>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

Thomas Frey

unread,
Nov 14, 2002, 3:51:57 AM11/14/02
to

"Felix Deutsch" <eno...@gmx.net> wrote:
> Thomas Frey wrote:
>
> >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/

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


Thomas Frey

unread,
Nov 14, 2002, 3:59:32 AM11/14/02
to

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


Jirka Klaue

unread,
Nov 14, 2002, 8:42:48 AM11/14/02
to
Thomas Frey wrote:
...

>>Evtl. wirst Du bei http://www.wotsit.org fündig.
...

> 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.

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

Claus Reibenstein

unread,
Nov 14, 2002, 12:14:31 PM11/14/02
to
Thomas Frey schrieb:

> 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


0 new messages