# Zwei Anfaengerfragen



## SaschaLR (10. Sep 2005)

Hallo!

Ich benutze zur Entwicklung Eclipse mit EclipseME-Plugin, was ja auch prima funktioniert. Nur habe ich Probleme ein Objekt vom Typ Image zu erzeugen, denn ich bekomme immer IOExceptions. Wo genau muss ich die Datei im Workspace ablegen, damit ich direkt darauf zugreifen kann?

Im jeweiligen Ordner gibt es ja die Ordner ".settings", "deployed" und "verified". In letzerem noch "classes" und "libs".

Kann mal kurz jemand erklären, wie das am Besten zu handhaben ist, also ... wo hinein und nen Beispiel-Konstruktor-Aufruf?


Ok, das zweite ist: Wie installiere ich das fertig Programm auf nem Handy? Ich mache es bei meinem zur Zeit so, dass ich per Bluetooth-Dongle direkt auf das Gerät in den Ordner mit Java-Apps kopiere. Das ist aber bestimmt nicht der beste Weg, oder? Wie ists denn zB bei Handys von Freunden, die kein Bluetooth haben oder so ... was gibt es an Möglichkeiten zur Installation auf Handys?

Danke für eure Zeit!

Gruss, Sascha


----------



## BRT006 (12. Sep 2005)

Zur ersten Frage:

Da die Klasse Image soweit ich weiß eine abstrakte Klasse ist, rufst du gar keinen Konstruktor, sondern überläßt das der Factory-Methode:


```
Image.createImage("meinbild.gif");
```

Zweitens: Es hängt immer vom Handymodell ab wie du etwas installieren kannst, prinzipiell bieten sich die Möglichkeiten Bluetooth, Infrarot oder OTA (Over-the-air, Download über den WAP-Browser).


----------



## SaschaLR (12. Sep 2005)

Hi!

Danke für die Antwort.

Wegen dem Bild: Ich habe das ganze noch garnicht installieren wollen, sondern nur in Eclipse (mit EclipseME) testen wollen... und da taucht der Fehler auf.

java.io.IOException
	at javax.microedition.lcdui.ImmutableImage.<init>(+30)
	at javax.microedition.lcdui.Image.createImage(+8)
	at Widgets.<init>(+171)
	at java.lang.Class.runCustomCode(+0)
	at com.sun.midp.midlet.Selector.commandAction(+50)
	at javax.microedition.lcdui.List.keyPressed(+71)
	at javax.microedition.lcdui.Display$DisplayAccessor.keyEvent(+147)
	at com.sun.kvem.midp.lcdui.EmulEventHandler$EventLoop.run(+295)

Zum Thema Installation: Für die Variante mit WAP brauche ich auch nen Server, der WAP-Fähig ist, gell?

Gruss, Sascha


----------



## BRT006 (12. Sep 2005)

Zur Exception: Zeit mal ein paar Zeilen Code, wo die Exception fliegt.

Zum Server: Da brauchts bloß irgend nen Webserver. Dort stellst du das jar-Archiv und den jad-Deskriptor bereit. EclipseME sollte dir beides erzeugen können. Dann öffnest du nur noch die URL (z.B. http://mein.kleiner.apache.de/der_name_meines_deskriptors.jad) und dann sollte das Handy einen Installationsdialog zeigen. Ggf. könnte es Probleme geben, wenn der Webserver nen falschen MIME-Typ angibt, manchen Handys ist das egal, Motorolas zicken da ein wenig.


----------



## SaschaLR (12. Sep 2005)

Hi!

Ist ziemlich so, wie du es gepostet hattest


```
try{
	bild = Image.createImage(".\datei.jpg");
}
catch(IOException ioe){
	ioe.printStackTrace();
}
```

bild ist vom Typ Image. Habe es mit .jpg und .png versucht und auf diese weisen: "./bild.jpg", ".\bild.jpg" und "bild.jpg". Die Datei liegt im Hauptverzeichnis des Projetkes...

Gruss, Sascha


----------



## KSG9|sebastian (12. Sep 2005)

mach mal   bild = Image.createImage("datei.jpg");


----------



## BRT006 (12. Sep 2005)

Schließe mich KSG9|sebastian an.


----------



## Gast (12. Sep 2005)

Habe ich ja gemacht...  mit dem selben Ergebnis... leider


----------



## Guest (5. Mai 2006)

createImage(getClass().getRessource("/bild.jpg"));


----------



## server007 (16. Nov 2006)

Bei Eclipse habs ich so gemacht:
Man muss das Bild (mach zur Sicherheit ein png-File draus) per

```
Image img = Image.createImage("/mountain.png");
```
laden.
dies kann eine IOException werfen, falls das Bild nicht existiert.


----------



## ctc (9. Jul 2007)

Die Resource wird sinnvollerweise im Verzeichnis 'res/package-name' abgelegt. 
Nach dem Build wird automtisch eine Kopie in das Verzeichnis 'bin/package-name' abgelegt.
Nach dem Verify wird automatisch eine Kopie in das Verzeichnis 'verified/classes/package-name' abgelegt.

PS: Ein Blick in die beigefügte Samples des WTK ist nicht das 'dümmste'. 
mfg ctc



```
private InputStream inputStream;
    static final String imgFile = new String("windhose.png");
    private static Image pic;

    public WindIntro(WindApp windApp)
    {
        // prepare source image 
        inputStream = getClass().getResourceAsStream(imgFile);
        try 
        {
            pic = Image.createImage(inputStream);
            formIntro.append(pic);
        }
         catch (IOException e) 
        {
            formIntro.append(e.toString());
        }
        ...
```


----------

