# JAR Archive mit mehreren Klassen und anderen JAR Files erstellen



## nilstk (28. Mai 2009)

Hallo zusammen,

ich habe da mal eine Frage:

Wir haben jetzt ein Javaprojekt bestehend aus mehrere Packages gemäß den entsprechenden Aufgaben angelegt. In einem Package, dass für die GUI zuständig ist, haben wir die gui.java, die ich über Rechte Maustaste/RUN in Netbeans auch im Applet Viewer ansehen kann. Da wir einen Applet haben, haben wir in dem Sinne keine main-Funktion.

Problem: Wie kriegen wir die ganzen Dateien, die zudem auch noch externe Bilbiotheken nutzen (*.jar wie jFreechart und jCalendar) in einer handlichen Jar-Datei zusammen, damit wir diese als Applet auf einen Webserver laden können?

Kann man das mit Netbeans vielleicht irgendwie automatisch erstellen lassen?


----------



## Wildcard (28. Mai 2009)

Das tut man eigentlich nicht. Jedes jar bleibt getrennt


----------



## nilstk (30. Mai 2009)

mhh.... ok

habe leider viele Probleme damit ...

der Aufbau meines Javaprojekts ist in Netbeans 

blueboxapplet.common  (Package, samt vielen *.java)
blueboxapplet.domain  (Package, samt vielen *.java)
blueboxapplet.gui  (Package)
   ==> NewClass.java
   ==> oberflaeche.java

In Netbeans lässt sich das Applet einfach durch rechte Maustaste / Run auf Newclass.java starten ... im Browser schlägt das Ganze aber völiig fehl und ich bin immer am Überlegen, ob ich das JAR File entpacken muss, wenn ich die folgende Meldung lese ...



> Caused by: java.io.IOException: open HTTP connection failed:http://127.0.0.1/T/blueboxapplet/gui/NewClass/class.class
> at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
> at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
> at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
> ...



Meine zugehörige HTML Datei dazu, sieht so aus 


```
<applet code="blueboxapplet.gui.NewClass.class" archives="BlueboxApplet.jar" width="900" height="900">
</applet>
```

Zusätzlich zu unserer eigenen Anwendung sind die JAR Dateien der verwendeten Bibliotheken im selben Verzeichnis wie die BlueboxApplet.jar untergebracht.
jcalendar-1.3.2.jar
jcommon-1.0.14.jar
jfreechart-1.0.11.jar
looks-2.0.1.jar
swing-layout-1.0.jar


Was mache ich falsch? Ich vermute mal, dass etwas mit meiner HTML Datei nicht stimmt, die das Applet aufruft.... ? stört vielleicht der punkt zwischen blueboxApplet und gui ?? ...


----------



## L-ectron-X (30. Mai 2009)

Du musst die fremden Jar-Dateien ebenfalls im archive-Attribut durch Komma getrennt mit auflisten.

Wenn es dann immer noch nicht geht: Wier lautet die Fehlermeldung in der Java-Konsole?


----------



## nilstk (31. Mai 2009)

Stimmt, das fehlte auch noch. Aber daran liegt es leider nicht.
Die Klasse NewClass.java ist im Package blueboxapplet.gui der BlueboxApplet.jar
Was könnte am Pfad falsch sein ?



> Laden: Klasse blueboxapplet.gui.NewClass.class nicht gefunden
> java.lang.ClassNotFoundException: blueboxapplet.gui.NewClass.class
> at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> ...



jetzige HTML Datei


> <applet code="blueboxapplet.gui.NewClass.class" archives="BlueboxApplet.jar,jcalendar-1.3.2.jar,jcommon-1.0.14.jar,jfreechart-1.0.11.jar,looks-2.0.1.jar,swing-layout-1.0.jar" width="900" height="900"></applet>


----------



## nilstk (31. Mai 2009)

Okay, habs 

```
<applet code="blueboxapplet.gui/NewClass.class"  archive="BlueboxApplet.jar,jcalendar-1.3.2.jar,jcommon-1.0.14.jar,jfreechart-1.0.11.jar,looks-2.0.1.jar,swing-layout-1.0.jar" width="900" height="900"></applet>
```

... falls jemand mal vor demselben Problem steht.

VG Nils


----------



## L-ectron-X (31. Mai 2009)

Diese Lösung solltest du auf jeden Fall in allen Browsern testen. Könnte sein, dass ein Browser mit deinem code-Attribut nicht klar kommt.


----------

