/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Jar-filer og udtræk af filer i disse - JVM~
Fra : Martin Schou


Dato : 04-04-02 10:08

Jeg bøvlede med at få hevet nogle billeder ud af en jar-fil og fik følgende
løsning foræret:

URLClassLoader cl = (URLClassLoader)this.getClass().getClassLoader();
url = cl.findResource(sti + navn);
Image billede = getImage(url);

Det virker - men kun i 1.2+, og det er lidt noget [censur], for jeg skal
have appletten til at virke i Internet Explorer - helst uden div. smarte
plug-ins osv (da planen er, at appletten også skal virke på f.eks.
håndholdte computere, hvor der måske heller ikke er en JVM bedre end 1.1).

Jeg ved godt, at Google er min ven, men i denne sag er Google åbenbart ikke
interesseret i at hjælpe mig :-/

Groups.Google.com hjælper heller ikke rigtigt.

Hvis I kan hjælpe mig med dette problem, vil jeg være (næsten) evigt
taknemmelig

De eneste krav til en løsning er:
1) Skal virke i Microsoft Internet Explorer med MS' standard JVM
2) Skal være lille - jeg arbejder med yderst begrænset plads; jeg har 256
kilobytes til alt til appletten, inkl. billeder, html-filer og andet. Da der
på nuværende tidspunkt er brugt ca. 250 kilobytes er der ca. 6 kilobytes til
overs :-/

Venlig hilsen
Martin Schou



 
 
Brian Matzon (04-04-2002)
Kommentar
Fra : Brian Matzon


Dato : 04-04-02 12:07

"Martin Schou" <Martin.Schou@Grue-Hornstrup.dk> wrote in message
news:0KUq8.9894$iY5.458325@news010.worldonline.dk...
> Hvis I kan hjælpe mig med dette problem, vil jeg være (næsten) evigt
> taknemmelig
Jeg ved ikke lige med størrelse, men du kan åbne jar filen via
ZipInputStream, og læse indholdet derfra...
Obfuscater du appletten ? - det vil ofte gøre appletten mindre...
Du bør heller ikke bruge -O når du kompiler java filerne, da dette kan gøre
de resulterende class filer større.

/Brian Matzon



Martin Schou (04-04-2002)
Kommentar
Fra : Martin Schou


Dato : 04-04-02 12:17


"Brian Matzon" <brian@matzon.dk> skrev i en meddelelse
news:3cac3407$0$52636$edfadb0f@dspool01.news.tele.dk...
> "Martin Schou" <Martin.Schou@Grue-Hornstrup.dk> wrote in message
> news:0KUq8.9894$iY5.458325@news010.worldonline.dk...
> > Hvis I kan hjælpe mig med dette problem, vil jeg være (næsten) evigt
> > taknemmelig
> Jeg ved ikke lige med størrelse, men du kan åbne jar filen via
> ZipInputStream, og læse indholdet derfra...
> Obfuscater du appletten ? - det vil ofte gøre appletten mindre...
> Du bør heller ikke bruge -O når du kompiler java filerne, da dette kan
gøre
> de resulterende class filer større.
>
> /Brian Matzon

Selve appletten fylder ~25 kilobytes i jar-form - resten er billeder, og dem
kan jeg ikke lige obfuscate . Og PNG virker selvfølgelig ikke i IEs JVM,
hvilket er noget [censur], for det kan trække billederne ned på ca. den
halve størrelse.

Noget tyder på, jeg lige skal kigge noget grundigt på ZipInputStream

//Martin Schou



Thorbjørn Ravn Ander~ (04-04-2002)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 04-04-02 20:42

"Martin Schou" <Martin.Schou@Grue-Hornstrup.dk> writes:

> Selve appletten fylder ~25 kilobytes i jar-form - resten er billeder, og dem
> kan jeg ikke lige obfuscate . Og PNG virker selvfølgelig ikke i IEs JVM,
> hvilket er noget [censur], for det kan trække billederne ned på ca. den
> halve størrelse.

Overvej din egen PNG-dekoder.
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Flemming Jensen (04-04-2002)
Kommentar
Fra : Flemming Jensen


Dato : 04-04-02 14:24

On Thu, 4 Apr 2002 11:08:18 +0200, "Martin Schou"
<Martin.Schou@Grue-Hornstrup.dk> wrote:

>Jeg bøvlede med at få hevet nogle billeder ud af en jar-fil...

Jeg har et noget lignende problem. Jeg har en applikation
der anvender et billede som hentes ind som et ImageIcon fra
en gif som ligger sammen med class-filerne. det virker!

Pakker jeg class-filer og gif i en jar kører programmet stadig
som før, pånær én ting - den kan nu ikke indlæse billedet!


/Flemming Jensen


Lars Mosegård (04-04-2002)
Kommentar
Fra : Lars Mosegård


Dato : 04-04-02 21:40


"Martin Schou" <Martin.Schou@Grue-Hornstrup.dk> skrev i en meddelelse
news:0KUq8.9894$iY5.458325@news010.worldonline.dk...
> Jeg bøvlede med at få hevet nogle billeder ud af en jar-fil og fik følgende
> løsning foræret:
>
> URLClassLoader cl = (URLClassLoader)this.getClass().getClassLoader();
> url = cl.findResource(sti + navn);
> Image billede = getImage(url);
>
> Det virker - men kun i 1.2+,
>
Ja URLClassLoader kom først i 1.2


>
> Jeg ved godt, at Google er min ven, men i denne sag er Google åbenbart ikke
> interesseret i at hjælpe mig :-/
>
Når det drejer sig om java, så prøv på www.java.sun.com,
da fandt jeg flg (http://forum.java.sun.com/thread.jsp?forum=22&thread=30833):

URL url = getClass().getResource("pic.gif");
if (url != null) {
Image image = getImage(url);
if (image != null) {
return new ImageIcon(image,desc);
}
}



Mvh
Lars



Martin Schou (08-04-2002)
Kommentar
Fra : Martin Schou


Dato : 08-04-02 10:17

> Når det drejer sig om java, så prøv på www.java.sun.com,
> da fandt jeg flg
(http://forum.java.sun.com/thread.jsp?forum=22&thread=30833):
>
> URL url = getClass().getResource("pic.gif");
> if (url != null) {
> Image image = getImage(url);
> if (image != null) {
> return new ImageIcon(image,desc);
> }
> }

Det virker ikke i f.eks. Netscape (som der står i tråden), men følgende (som
der også står i tråden) virker vist nok i alle browsere:

/*start kodestump*/
Image temp;
try
{
InputStream in = Originator.getResourceAsStream( "picture.gif" );
if (in == null)
{
return null;
}
byte[] buffer = new byte[in.available()];
in.read(buffer);
temp = Toolkit.getDefaultToolkit().createImage( buffer );
}
catch (IOException e)
{
e.printStackTrace();
}
/*slut kodestump*/

Der er bare to ting, der undrer mig:
1) Hvorfor virker det kun i applet-klassens init()?
2) Hvorfor i alverden bliver mine billeder ikke indlæst ordentligt? Nogle
billeder er indlæst ordentligt, mens andre indlæses ca. halvvejs, og andre
igen bliver totalt forvanskede - f.eks. er et af disse billeder en udfyldt
cirkel, der efter indlæsning mest ligner et halv skakbrædt. Hvilke billeder,
der indlæses ordentligt, og hvilket der bliver forvanskede skifter fra gang
til gang - eneste genganger i problematikken er et baggrundsbillede, der
aldrig bliver indlæst. Det billede er ca. 6 gange større end de andre
billeder, så umiddelbart gætter jeg på, at der er et timing-problem i
ovenstående kodestump, når der indlæses adskillige billeder.

Nogle forslag/idéer?

Venligst
Martin Schou



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408523
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste