Zitat Zitat von pebisoft
erklär das einmal "Du kannst die serielle Schnittstelle doch wie eine Datei ansprechen. "
Unter Windows können manche Schnittstellen (wie z.B. die seriellen Schnittstellen ComX) wie Dateien angesprochen werden (Unter Linux müsste das auch gehen, ich weiß aber nicht wie die Pfade dort heißen).
Das Bedeutet, du kannst in einem Java-Programm ein Objekt für den Zugriff auf das Dateisystem des Rechners anlegen, wobei du allerdings keine Datei referenzierst, sonders das anzusprechende Gerät.
Der Vorteil ist, dass du keine extra Bibliotheken brauchst. Nachteilig ist wiederum, das du keinen Einfluss auf die Statusleitungen, sowie das Übertragungsprotokoll hast.

Da liefert das Betriebssystem allerdings wieder entsprechende Programme mit, die diese Aufgaben übernehmen können.
Das Programm mode.com dient dabei zum setzen aller Einstellungen, welche aus dem Javaprogramm selbst nicht vorgenommen werden können.

Beispiel-Klasse:
Code:
import java.io.*;

public class SerialIO{
	
	private RandomAccessFile ComFile; //serielle Schnittstelle die angesprochen werden soll
	
	public SerialIO(){ //Konstruktor
		configComPort();	//initialisiert die serielle Schnittstelle
	}
	
	public void destroy(){ //Destruktor
		try{
			ComFile.close(); //versucht die serielle Schnittstelle zu schließen
		}catch(Exception e){ e.printStackTrace(); };
	}
		
	public boolean configComPort(){
		String[] cmd = {"c:\\WINDOWS\\system32\\cmd.exe /c start /min", //Konsole öffnen
   						"c:\\WINDOWS\\system32\\mode.com COM1:",  //COM1 soll konfiguriert werden
   						"baud=9600", 
   						"parity=n", 
   						"data=8", 
   						"stop=1"};
   		try{
   			Process p  = Runtime.getRuntime().exec(cmd); // Befehlszeile ausführen
        	if( p.waitFor() != 0 ) { //Falls der Prozess nicht gestartet werden kann
    			System.out.println("Fehler bei der Ausführung: " + cmd );
    			return false; //Fehler
    		}
    		ComFile = new RandomAccessFile("COM1:","rws"); //COM1 öffnen
    	}catch(Exception e){e.printStackTrace();};
    	return true; //alles hat geklappt
	}
	
	public void sendByte(byte b){ //Gibt ein Datenbyte auf die serielle S. aus
		byte[] bytes = new byte[1]; //ByteArray der Länge 1
		bytes[0] = b;	// Daten einfügen
		try{ ComFile.write(bytes); // und in die Datei schreiben
		} catch(Exception e){ e.printStackTrace(); };
	}
	
	public byte receiveByte(){ //Liest ein Datenbyte aus der seriellen S.
		byte[] b = new byte[1]; //Daten-Puffer
		try{
			ComFile.readFully(b); //Lese-Status bis ein Byte ankommt
		} catch(Exception e) { e.printStackTrace(); };
		return b[0]; //Byte zurückgeben
	}
		
}
Unter WindowsXP liefs bei mir einwandfrei. Auf nem Schulrechner konnte ich leider nicht auf die mode.com zugreifen(Lag vieleicht an der Rechtevergabe oder einfach an Windows2000).

Hmm... Deine Bibliothek ist aber eleganter. Ist nur blöd, das man auf jedem Rechner die .jar-Datei einbinden und die .dll-Datei mitliefern muss.