# in Java Applet jar Files nutzen



## StevieS (29. Mrz 2010)

Hallo zusammen,

ich habe ein Applet das den Bildschirm mit dem Ton (Mikrofon) aufzeichnet. Dazu benutze ich als Bibliotheken die ich in den Classpath importiert habe sound.jar und jmf.jar (Java Media Framework). Wenn ich das Applet unter Eclipse ausführe, funktioniert alles wunderbar. Sobald ich aber das Projekt als jar file selbst exportiere, passiert folgendes:

Das Applet wird zunächst ganz normal im Browser geladen. Sobald ich jedoch die Aufnahme starten möchte, meckert die Konsole das sie keine Aufnahmegeräte finden kann. Dafür wäre eigentlich die jmf.jar verantwortlich über javax.media.CaptureDeviceManager. Aber offensichtlich kann das Applet die jmf.jar nicht finden und die zugehörigen Klassen nicht ausführen. 

Nun also die Frage, was muss ich in Eclipse einstellen, damit in der exportieren jar Datei die inkludierten jar Files des Projekts von den Klassen erkannt und genutzt werden können? Das Fat Jar Plugin habe ich bereits ausprobiert, genützt hat es jedoch nichts.


----------



## L-ectron-X (29. Mrz 2010)

http://www.java-forum.org/applets/4482-verweigert-browser-anzeige-java-applets.html
http://www.java-forum.org/applets/16717-applets-webstart-anwendungen-signieren.html

Gibts in der Java-Konsole Fehlermeldungen?


----------



## StevieS (29. Mrz 2010)

Hallo die JAR Files sind signiert und als Fehlermeldung gibt die Konsole das aus, was sie eben ausgeben soll:

java.lang.RuntimeException: Das Audioaufnahmegerät konnte nicht gefunden werden.

Der passende Code zu dieser Exception:


```
/**
	 * Erstellt einen neuen Rekorder
	 * 
	 */
	public Audiorekorder() {
		
		
		/* Alle Eingabegeräte holen, die folgendes Audioformat unterstützen:
		 * Linear, 16000 Hz, 8 Bit Samplegröße, 1 Kanal (Mono) 
		 */
		Vector audioquellen = CaptureDeviceManager.getDeviceList(new AudioFormat("linear", 16000, 8, 1));
		if (audioquellen.size() == 0)
			throw new RuntimeException("Das Audioaufnahmegerät konnte nicht gefunden werden.");
		
		/* Die erste Quelle welche den oben genannten Spezifikationen entspricht, wird in der quellenInfo gespeichert
		 */
		quellenInfo = (CaptureDeviceInfo) audioquellen.lastElement();
	}
```


----------



## L-ectron-X (29. Mrz 2010)

Wie hast du die Dateien in die HTML-Datei eingebunden?


----------



## StevieS (17. Apr 2010)

So sieht die Einbindung derzeit aus:


```
<applet code="view.RekorderJApplet2.class" archive="rekorder.jar,lib/jmf.jar,lib/commons-net-2.0.jar" width=303 height=350><param name=isMenuBarVisible value="true"><param name=isOptimized value="false"></applet>
```

Die zwei anderen jar files liegen wirklich auf dem Server im Ordner lib. Habe alles möglich schon probiert, fat jar exporter, manifest file etc. Es liegt halt wirklich nur an den Klassen des Java Media Framesworks die irgendwie nicht ausgeführt werden können. Unter Eclipse funktioniert alles wunderbar, aber sobald ich das ganze als Applet starten möchte, funktioniert es nicht mehr.

Das mit dem Ton habe ich jetzt so gelöst, dass ich erst mal auf JMF verzichte und die Standard Java Sound Klassen benutze. Allerdings brauche ich zum zusammenfügen einer Ton- und Videospur die Klasse merge.java (http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/Merge.java) immer noch JMF. Auch würde JMF das abspeichern der Tonspur als Mp3 unterstützen.


----------



## L-ectron-X (17. Apr 2010)

Hmm, das lässt sich nun aber wirklich schwer von "außen" analysieren.
Hast du auch schon mal versucht, mit den Pfadangaben im archive-Attribut zu spielen?

Versuche doch bspw. mal das:

```
... archive="./rekorder.jar,./lib/jmf.jar,./lib/commons-net-2.0.jar" ...
```
Obwohl ich nicht glaube, dass das was bringen wird.

Wenn es in Eclipse funktoniert, muss es auch außerhalb der IDE zum Laufen zu bringen sein.


----------

