Java sdk Windows 7 64bit Problem

clifford

Grünschnabel
Hallo liebe Leute!

Ich habe mich Heute neu angemeldet und möchte erst ein mal Hallo sagen und Euch um Hilfe bitten.
Zunächst habe ich versucht den Titel soweit ich konnte einzugrenzen.

Ich habe vor kurzem meinen PC neu aufgesetzt mit Windows 7 64bit und nutze neuerdings Eclipse 3.5.1 und das neueste Java sdk (Update 18 für 64bit).

Nun hab ich, weil ich vorher mit Eclipse 3.4 gearbeitet hatte, ein paar alte Programme getestet. Dabei bin ich über ein Problem gestolpert, dass ich mir nicht erklären kann. Ich hab einmal den Problemfall in einen handlichen Code verpackt.

Code:
import java.io.*;
import java.util.*;
import javax.sound.sampled.*;
import javax.swing.*;

public class Sound {
	
	//Clip zur Audiowiedergabe
	public Clip clip;
	//Inputstream zur Audiowiedergabe
	private AudioInputStream playStream;
	File file;
	
	Sound (File file) {
		this.file = file;
		try { 
			//Neuen Audio-Input-Stream mit der gewaehlten Wiedergabe-Datei erstellen
			playStream = AudioSystem.getAudioInputStream(file);
			//Format der Wiedergabe-Datei erkennen
			AudioFormat format = playStream.getFormat();
			//Eigenschaften der DataLine festlegen
			DataLine.Info info = new DataLine.Info (Clip.class, playStream.getFormat(),((int)playStream.getFrameLength() * format.getFrameSize()));
			//Clip (Stream) mit den festgelegten Eigenschaften erstellen 
			clip = (Clip) AudioSystem.getLine(info);
			//Clip mit dem Audio-Input-Stream oeffnen
			clip.open(playStream);	
			clip.start();
		}
	  //Auffangen der InputMismatchException
		catch (InputMismatchException e) {
			JOptionPane.showMessageDialog(null, "falsches Format", "Fehler", JOptionPane.ERROR_MESSAGE);
		}
		//Auffangen der LineUnavailableException
		catch (LineUnavailableException e) {
			JOptionPane.showMessageDialog(null, e.getMessage(), "Line nicht Verfügbar", JOptionPane.ERROR_MESSAGE);
		}
	  //Auffangen der IOException
		catch (IOException e ) {
			JOptionPane.showMessageDialog(null, e.getMessage(), "IO Error", JOptionPane.ERROR_MESSAGE);
		}
	  //Auffangen der UnsupportedAudioFileException
		catch (UnsupportedAudioFileException e) {
			JOptionPane.showMessageDialog(null, "Format wird nicht Unterstützt", "Fehler", JOptionPane.ERROR_MESSAGE);
		}
	}
	
	public void clipPlay() {
		// Clip abspielen
		clip.start();
	}
	
	public static void main(String[] args) {
		File file = new File("test.wav");
		new Sound(file);
	}
}


Nun passiert es, das die IOException geworfen wird (Das System kann die angegebene Datei nicht finden), obwohl sich die Datei im Sourcefolder befindet.
Ich kann mir das nicht erklären, da dieser Code (dort mit JFileChooser) immer funktioniert hat.

Kann es sein, dass das Problem an Windows 7 liegt, wegen der Pfade?

Ich hoffe, ihr könnt mir helfen.

Vielen Dank und viele Grüße,
Klaus
 
Hallo...

also ich hab zwar kein windows 7 64bit aber vielleicht kann ich ja trotzdem helfen...

versuch mal anstatt
Code:
File file = new File("test.wav");

das

Code:
String projektpfad = new File("").getAbsolutePath();
File file = new File(projektpfad+"\\src\\test.wav");

hoffe ich konnte helfen...

mfg robert
 
Zuletzt bearbeitet:
Hallo...

also ich hab zwar kein windows 7 64bit aber vielleicht kann ich ja trotzdem helfen...

versuch mal anstatt
Code:
File file = new File("test.wav");

das

Code:
String projektpfad = new File("").getAbsolutePath();
File file = new File(projektpfad+"\\src\\test.wav");

hoffe ich konnte helfen...

mfg robert

Hallo Robert!

Vielen Dank für Deinen Tip. Hab ich ausgetestet, aber leider ohne Erfolg.
Ich hab das sowohl von Dir geschrieben, als auch mit einem angepassten Pfad, also nur mit "test.wav" ausprobiert.
Die Datei befindet sich ja im selben Verzeichnis wie der Quelltext.
Das will mir nicht in den Kopf. Da ich ja im Vergleich recht viel geändert habe (neue Java Version, neues Betriebssystem, neue Eclipse Version) frage ich mich natürlich, wo da der Fehler liegen könnte. Ich hab mal ein Programm, welches einen ähnlichen Quelltext verwendet als *.jar File exportiert und dann geht es. Allerdings mit FileChooser. Ich werde das gleich mal über die Console starten, vielleicht geht es ja so.

Vielen Dank und Gruß,
Klaus
 
Zuletzt bearbeitet:
Hallo!

Also das starten über Konsole hat auch nicht gehollfen, hätte mich aber auch gewunder, da sich an der Java Version nichts ändert.
Mit verschiedenen wav Datedien habe ich es auch Probiert umd auszuschliessen, das es eventuell daran liegt.

Dann werde ich wohl mal testweise Java downgraden und noch mal testen.

Danke und Gruß Klaus
 
Hallo!

Also da muss ich mich ja mal schämen (war aber auch schon etwas spät gestern).

Das Programm ist nicht ganz einwandfrei, denn ich hab die Schleife zum Abspielen vergessen.
Dann hab ich doch die Datei auch in einem anderen src Ordner gespeichert als ich dachte.

Na ja, so spät sollte man soche Tests wohl nicht mehr machen. Ich könnte mir selbst in den Hintern treten.

Na ja, man lernt nie aus.

Vielen Dank und Gruß,
Klaus
 
Java:
File file = new File("test.wav");

Dadurch wird die Datei test.wav im über den relativen Pfad ausgehend zu deinem Working-Directory gesucht.

Das ist, wenn nichts anderes (in den Start-Einstellungen) eingestellt ist, im eclipse das Projekt-Verzeichnis.
 
Zurück