mp3 Header - wo könnte der Fehler liegen?

darkeye2

Bekanntes Mitglied
Hallo,

ich hab einige klassen geschrieben (angefangen zu schreiben) um mit mp3´s arbeiten zu können, darunter eine klasse, id3v1 tags auslesen, die prima funktioniert und eine klasse zum auslesen des mp3 headers, diese funktioniert leider nicht so ganz, bei meinchen mp3´s wird alles richtig angezeigt, bei anderen sind nur einige werte falsch und bei manchen kommen irgendwelche Exceptions (meistens irgendwelche arraywerte die es net gibt, wie -1 oder so).
Es gibt sogar fälle, wo gar kein mp3-header gefunden wird.

Ich hab schon ein weilchen nach fehlern gesucht aber nix gefunden, könnte mir jemand helfen?

Klasse Header.java:
Java:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.FileChannel;

public class Header {
	private boolean isMP3;
	private long lPos = 0;
	
	//Headerstruktur: 11111111.111aabbc.eeeeffgh.iijjklmm
	/* aa 	: versionID   => Version des MPEG (1; 2; inofiziel 2.5)
	 * bb 	: LayerID 	  => Layer Version (1; 2; 3)
	 * c  	: protection  => error protection bit, falls gesetzt kommt nach header 16bit prüfsumme (CRC)
	 * eeee : bitrate	  => bitrate der datei (abhängig vom Layer)
	 * ff	: freqquence  => Frequenz der datei (abhängig von der MPEG version
	 * g	: padding	  => Paddingbit gibt an, ob Frame vollständig ausgefüllt ist oder nicht
	 * h	: priv		  => Private-bit steht zur freien verfügung
	 * ii	: mode 		  => Stereomode (Stereo, joint Stereo, Zweikanal, Mono)
	 * jj	: -------	  => mode extension, nur interessant wenn joint stereo als modus gewählt ist
	 * k	: -------	  => copyright-bit, urheberrechtlich geschützt oder nicht
	 * l	: -------	  => original-/ copybit (1 für original)
	 * mm	: -------	  => emphasis gibt  die verwendete Rauschunterdrückung an (nicht häufig benutzt)
	 * 
	 * Für MP3 Format festgelegt:
	 * Magic Number (erkennungszahl) : 11111111.11111011.
	 * aa : 11 => Version MPEG 1
	 * bb : 01 => Layer 3    (MP3 ~ MPEG Layer 3)
	 * c  : 1  => Prüfsumme ist meistens enthalten
	 * Struktur: 11111111.11111011.eeeeffgh.iijjklmm
	 * 
	 * */
	
	private float versionID;
	private short layerID;
	private boolean protection;		//protection bit, geschützt oder nicht
	private short bitrate;			//Bitrate der Mp3 datei
	private int frequence;			//Frequence der Mp3 datei (meistens 44kHz)
	private boolean padding;
	private boolean priv;
	private String mode;
	
	Header(File fl, long pos){
		lPos  = pos;
		if(lPos == -1){
			isMP3 = false;
		}else{
			isMP3  = true;
			readHeader(fl);
		}
	}
	
	Header(String fl, long pos){
		this(new File(fl), pos);
	}
	
	Header(URL fl, long pos){
		this(new File(fl.getPath()), pos);
	}
	
	Header(File fl){
		this(fl, (locate(fl)));
		
	}
	
	Header(String fl){
		this(new File(fl));
	}
	
	Header(URL fl){
		this(new File(fl.getPath()));
	}
	
	//anfang der mp3 datei feststellen (suche nach den muster das auf einen mp3 header hindeutet)
	private static long locate(File file){
		FileChannel fc = null;
		FileInputStream fs = null;
		long pos = 0;
		byte[] buffer = new byte[4];
		
		try {
			fs = new FileInputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		fc = fs.getChannel();
		try {
			fc.position(0);
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		
		
		for(; pos < 12000; pos++){
			try {
				fs.read(buffer, 0, 4);
			} catch (IOException e) {
				e.printStackTrace();
			}
			if((buffer[0]& 0xFF) ==255 && ((buffer[1]&0xFF) == 251)&& (buffer[2] & 0xFF) >= 96 && (buffer[2] & 0xFF)< 250){
				try {
					fc.close();
					fs.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
				return pos;
			}
			try {
				fc.position(pos);
			} catch (IOException e) {
				e.printStackTrace();
			}
			
		}
		
		
		return -1;
	}
	
	//auslesen des headers und speichern der werte in den header variablen
	private void readHeader(File file){
		FileChannel fc = null;
		FileInputStream fs = null;
		byte[] buffer = new byte[4];
		long header;
		
		try {
			fs = new FileInputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		fc = fs.getChannel();
		try {
			fc.position(lPos);
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		
		//Auslesen der 4 byte
		try {
			fs.read(buffer, 0, 4);
		} catch (IOException e) {
			e.printStackTrace();
		}
		//header in long umwandeln
		header = convertHeaderToLong(buffer);
		
		//skip sync (11)
		//Audioversion(2)
		versionID = getVersionId(header);
		
		//Layer(2)
		layerID = getLayerId(header);
		
		//Protection (1)
		protection = getProtectionBit(header);
		
		//Bitrate (4)
		bitrate = getBitrate(header);
		
		//Frequenc (2)
		frequence = getFrequence(header);
		
		//padding (1)
		padding = getPaddingBit(header);
		
		//private (1)
		priv = getPrivatBit(header);
		
		//Channelmode (Stereo, mono, ...) (2)
		mode = getChannelmode(header);
		
		//Mode Extension <nur bei joint stereo> (2)
		
		//copyright (1)
		
		//Original <1 bei origional, 0 bei kopie> (1)
		
		//emphasis <veraltet> (2)
		
	}
	
	//für alle methoden gilt: tmp = header der zu einem long convertiert wurde; 
	private String getChannelmode(long tmp){
		String[] table = {"Stereo", "Joint Stereo", "Zweikanal", "Mono"};
		return table[getIntegerValue(6, (short)3, tmp)];
	}
	
	private boolean getPrivatBit(long tmp){
		boolean[] table = {false, true};
		return table[getIntegerValue(8, (short)1, tmp)];
	}
	
	private boolean getPaddingBit(long tmp){
		boolean[] table = {false, true};
		return table[getIntegerValue(9, (short)1, tmp)];
	}
	
	private int getFrequence(long tmp){
		int[][] table = {
							{11025, 12000, 8000, 0},
							{0, 0, 0, 0},
							{22050, 24000, 16000, 0},
							{44100, 48000, 32000, 0},
						};
		return table[getIntegerValue(19, (short)3, tmp)][getIntegerValue(10, (short)3, tmp)];
	}
	
	private short getBitrate(long tmp){
		short[][] table = {
						//Layer 1
						{0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 0},
						//Layer 2
						{0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0},
						//Layer 3
						{0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0}
					};
		
		return table[layerID -1][getIntegerValue(12, (short)15, tmp)];
	}
	
	private boolean getProtectionBit(long tmp){
		boolean[] table = {false, true};
		return table[getIntegerValue(16, (short)1, tmp)];
	}
	
	private short getLayerId(long tmp){
		short[] table = {0, 3, 2, 1};
		return table[getIntegerValue(17, (short)3, tmp)];
	}
	
	private float getVersionId(long tmp){
		float[] table = {2.5f, 0.0f, 2.0f, 1.0f};
		return table[getIntegerValue(19, (short)3, tmp)];
	}
	
	private int getIntegerValue(int skipbit, short maskValue, long tmp){
		return (int)((tmp>>skipbit) & maskValue);
	}
	
	private long convertHeaderToLong(byte[] bytHeader){
		return (long)(((bytHeader[0] & 255) << 24) | ((bytHeader[1] & 255) << 16) | ((bytHeader[2] & 255) <<  8) | ((bytHeader[3] & 255))); 
	}
	
	
	protected boolean isValid(){
		return isMP3;
	}
	
	//getter-methoden für die Headerklasse, zum übergeben der enthaltenen parameter an andere klassen
	public float getMpegId(){
		return versionID;
	}
	
	public short getLayer(){
		return layerID;
	}
	
	public boolean isProtected(){
		return protection;
	}
	
	public short getBitrate(){
		return bitrate;
	}
	
	public int getFrequence(){
		return frequence;
	}
	
	public boolean getPdding(){
		return padding;
	}
	
	public boolean isPrivate(){
		return priv;
	}
	
	public String getMode(){
		return mode;
	}

}

Klasse zum Testen (müsste selbst einen pfad zu ner mp3 datei einfügen, um direkt testen zu können):
Java:
public class TestMp3Classes {
	
	TestMp3Classes(String path){
		Header hd = new Header(path);
		if(hd.isValid()){
			/*
			Id3v1 id3 = new Id3v1(path);
			//Ausgaben
			System.out.println("Ausgaben zu : "+id3.getTitel());
			*/
			System.out.println("\r\nHeader Informationen:");
			System.out.println("Version MPEG: "+hd.getMpegId());
			System.out.println("Layer : "+hd.getLayer());
			System.out.println("Protected : "+hd.isProtected());
			System.out.println("Bitrate: "+hd.getBitrate());
			System.out.println("Freqenze: "+hd.getFrequence());
			System.out.println("Modus: "+hd.getMode());
			System.out.println();
			/*
			System.out.println("Tags: ");
			System.out.println("Titel: "+ id3.getTitel());
			System.out.println("Interpret: "+ id3.getInterpret());
			System.out.println("Album: "+ id3.getAlbum());
			System.out.println("Genre: "+ id3.getGenre());
			System.out.println("Jahr: "+ id3.getYear());
			System.out.println("Kommentar: "+ id3.getComment());
			*/
		}else{
			System.out.println("Invalide MP3");
		}
	}

	public static void main(String[] args) {
		new TestMp3Classes("");
	}

}

Meine Informationsquellen waren:
MP3 File Format Specification
MP3 Grundlagen, Aufbau und Funktion
MP3 ? Wikipedia
(nur falls jemand nachschauen will, ob ich was völlig falsch verstanden hab oder so)
 

tagedieb

Top Contributor
Verwendestu du ausschliesslich MP3 Dateien mit ID3v1 Tags oder koennte es sich bei den andern MP3s um ID3v2 Tags handeln?
 

darkeye2

Bekanntes Mitglied
ich verwende auch mp3 Dateien mit ID3V2 .... Tags (die klasse für diese ist nur noch nicht ganz fertig) aber ich hab die länge der tags ja mitberücksichtig und die suche nach dem header läuft ja lang/ weit genug um einen zu finden (meistens, bei manchen wird er nicht gefunden, ist aber eher selten) und das hat ja nix damit zutun, dass teilweise falsche Ergebnisse rauskommen.

hab mal Ergebnisse notiert, hab wahllos mp3´s getestet (20 stück):
richtig: 3
falsch: 17
- alle angaben falsch: 2
- kein header gefunden: 3
- Version, Modus, Bitrate und Frequence falsch: 2
- arrayindex ... in zeile 223 falsch (ergibt sich aus falscher layer id): 10

sehe aber immer noch keinen fehler im code ..
 
Zuletzt bearbeitet:

darkeye2

Bekanntes Mitglied
also ich bin weiter gekommen, war ein ganz einfacher leichtsinnsfehler, dadurch wurden die 4 bits falsch ausgelsesen (um 1 verschoben) und das verursachte die meisten fehler, allerdigns ist wohl immer noch ein fehler, da jetzt die mp3´s, die vorher richtig richtig ausgelsen wurden nicht mehr ausgelesen werden.

bei einem test mit 20 mp3´s:
richtig: 16
falsch: 4
- java.lang.IllegalArgumentException (zeile: 140)

der verbesserte code von Header.java
Java:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.FileChannel;

public class Header {
	private boolean isMP3;
	private long lPos = 0;
	
	//Headerstruktur: 11111111.111aabbc.eeeeffgh.iijjklmm
	/* aa 	: versionID   => Version des MPEG (1; 2; inofiziel 2.5)
	 * bb 	: LayerID 	  => Layer Version (1; 2; 3)
	 * c  	: protection  => error protection bit, falls gesetzt kommt nach header 16bit prüfsumme (CRC)
	 * eeee : bitrate	  => bitrate der datei (abhängig vom Layer)
	 * ff	: freqquence  => Frequenz der datei (abhängig von der MPEG version
	 * g	: padding	  => Paddingbit gibt an, ob Frame vollständig ausgefüllt ist oder nicht
	 * h	: priv		  => Private-bit steht zur freien verfügung
	 * ii	: mode 		  => Stereomode (Stereo, joint Stereo, Zweikanal, Mono)
	 * jj	: -------	  => mode extension, nur interessant wenn joint stereo als modus gewählt ist
	 * k	: -------	  => copyright-bit, urheberrechtlich geschützt oder nicht
	 * l	: -------	  => original-/ copybit (1 für original)
	 * mm	: -------	  => emphasis gibt  die verwendete Rauschunterdrückung an (nicht häufig benutzt)
	 * 
	 * Für MP3 Format festgelegt:
	 * Magic Number (erkennungszahl) : 11111111.11111011.
	 * aa : 11 => Version MPEG 1
	 * bb : 01 => Layer 3    (MP3 ~ MPEG Layer 3)
	 * c  : 1  => Prüfsumme ist meistens enthalten
	 * Struktur: 11111111.11111011.eeeeffgh.iijjklmm
	 * 
	 * */
	
	private float versionID;
	private short layerID;
	private boolean protection;		//protection bit, geschützt oder nicht
	private short bitrate;			//Bitrate der Mp3 datei
	private int frequence;			//Frequence der Mp3 datei (meistens 44kHz)
	private boolean padding;
	private boolean priv;
	private String mode;
	
	Header(File fl, long pos){
		lPos  = pos;
		if(lPos == -1){readHeader(fl);}
		if(lPos == -1){
			isMP3 = false;
		}else{
			isMP3  = true;
			readHeader(fl);
		}
	}
	
	Header(String fl, long pos){
		this(new File(fl), pos);
	}
	
	Header(URL fl, long pos){
		this(new File(fl.getPath()), pos);
	}
	
	Header(File fl){
		this(fl, (locate(fl)));
		
	}
	
	Header(String fl){
		this(new File(fl));
	}
	
	Header(URL fl){
		this(new File(fl.getPath()));
	}
	
	//anfang der mp3 datei feststellen (suche nach den muster das auf einen mp3 header hindeutet)
	private static long locate(File file){
		FileChannel fc = null;
		FileInputStream fs = null;
		long pos = 0;
		byte[] buffer = new byte[4];
		
		try {
			fs = new FileInputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		fc = fs.getChannel();
		try {
			fc.position(0);
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		
		
		for(; pos < 36000; pos++){
			try {
				fs.read(buffer, 0, 4);
			} catch (IOException e) {
				e.printStackTrace();
			}

			if((buffer[0]& 0xFF) ==255 && (((buffer[1]&0xFF) == 251) ||((buffer[1]&0xFF) == 250)) && (buffer[2] & 0xFF) >= 96 && (buffer[2] & 0xFF)< 250){
				try {
					fc.close();
					fs.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
				return (pos-1);
			}
			try {
				fc.position(pos);
			} catch (IOException e) {
				e.printStackTrace();
			}
			
		}
		
		
		return -1;
	}
	
	//auslesen des headers und speichern der werte in den header variablen
	private void readHeader(File file){
		FileChannel fc = null;
		FileInputStream fs = null;
		byte[] buffer = new byte[4];
		long header;
		
		try {
			fs = new FileInputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		fc = fs.getChannel();
		try {
			fc.position(lPos);
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		
		//Auslesen der 4 byte
		try {
			fs.read(buffer, 0, 4);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//header in long umwandeln
		header = convertHeaderToLong(buffer);
		
		//skip sync (11)
		//Audioversion(2)
		versionID = getVersionId(header);
		
		//Layer(2)
		layerID = getLayerId(header);
		
		//Protection (1)
		protection = getProtectionBit(header);
		
		//Bitrate (4)
		bitrate = getBitrate(header);
		
		//Frequenc (2)
		frequence = getFrequence(header);
		
		//padding (1)
		padding = getPaddingBit(header);
		
		//private (1)
		priv = getPrivatBit(header);
		
		//Channelmode (Stereo, mono, ...) (2)
		mode = getChannelmode(header);
		
		//Mode Extension <nur bei joint stereo> (2)
		
		//copyright (1)
		
		//Original <1 bei origional, 0 bei kopie> (1)
		
		//emphasis <veraltet> (2)
		
	}
	
	//für alle methoden gilt: tmp = header der zu einem long convertiert wurde; 
	private String getChannelmode(long tmp){
		String[] table = {"Stereo", "Joint Stereo", "Zweikanal", "Mono"};
		return table[getIntegerValue(6, (short)3, tmp)];
	}
	
	private boolean getPrivatBit(long tmp){
		boolean[] table = {false, true};
		return table[getIntegerValue(8, (short)1, tmp)];
	}
	
	private boolean getPaddingBit(long tmp){
		boolean[] table = {false, true};
		return table[getIntegerValue(9, (short)1, tmp)];
	}
	
	private int getFrequence(long tmp){
		int[][] table = {
							{11025, 12000, 8000, 0},
							{0, 0, 0, 0},
							{22050, 24000, 16000, 0},
							{44100, 48000, 32000, 0},
						};
		return table[getIntegerValue(19, (short)3, tmp)][getIntegerValue(10, (short)3, tmp)];
	}
	
	private short getBitrate(long tmp){
		short[][] table = {
						//Layer 1
						{0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 0},
						//Layer 2
						{0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0},
						//Layer 3
						{0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0}
					};
		
		return table[layerID -1][getIntegerValue(12, (short)15, tmp)];
	}
	
	private boolean getProtectionBit(long tmp){
		boolean[] table = {false, true};
		return table[getIntegerValue(16, (short)1, tmp)];
	}
	
	private short getLayerId(long tmp){
		short[] table = {0, 3, 2, 1};
		return table[getIntegerValue(17, (short)3, tmp)];
	}
	
	private float getVersionId(long tmp){
		float[] table = {2.5f, 0.0f, 2.0f, 1.0f};
		return table[getIntegerValue(19, (short)3, tmp)];
	}
	
	private int getIntegerValue(int skipbit, short maskValue, long tmp){
		return (int)((tmp>>skipbit) & maskValue);
	}
	
	private long convertHeaderToLong(byte[] bytHeader){
		return (long)(((bytHeader[0] & 255) << 24) | ((bytHeader[1] & 255) << 16) | ((bytHeader[2] & 255) <<  8) | ((bytHeader[3] & 255))); 
	}
	
	
	protected boolean isValid(){
		return isMP3;
	}
	
	//getter-methoden für die Headerklasse, zum übergeben der enthaltenen parameter an andere klassen
	public float getMpegId(){
		return versionID;
	}
	
	public short getLayer(){
		return layerID;
	}
	
	public boolean isProtected(){
		return protection;
	}
	
	public short getBitrate(){
		return bitrate;
	}
	
	public int getFrequence(){
		return frequence;
	}
	
	public boolean getPdding(){
		return padding;
	}
	
	public boolean isPrivate(){
		return priv;
	}
	
	public String getMode(){
		return mode;
	}

}

[EDIT] alle fehler scheinen nun beseitigt zu sein, falls jemand den code verwenden will, habe ich ihn hier ausgebessert, alle infos können den kommentaren und den links im ersten post entnommen werden.
Code getestet mit 100 mp3´s, bei allen 100 hat alles gestimmt!
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Licence-Header für InHouse entwickelten Source Allgemeine Java-Themen 8
W 2D-Grafik Erstellungsdatum JPG direkt aus Header (EXIF) auslesen. Allgemeine Java-Themen 5
C Itext Voralagen Header Footer -> PDF Allgemeine Java-Themen 0
V C-Header Datei aus .java File herstellen Allgemeine Java-Themen 10
G Javamail Nachricht senden: Betreff und Header fehlen Allgemeine Java-Themen 4
S MP3 Header auslesen Allgemeine Java-Themen 7
lumo Row Header ist public, zeigt die funktion aber nicht public Allgemeine Java-Themen 8
R Header per Java senden Allgemeine Java-Themen 6
N JTable & JScrollPane - Wie den Header anpassen? Allgemeine Java-Themen 4
S Homepage-Header nach Tageszeit autom. ändern? Allgemeine Java-Themen 2
M Wie könnte man den Codeschnipsel rekursiv darstellen? Allgemeine Java-Themen 1
L Plugins in Java realisieren: Wie könnte man so etwas machen? Allgemeine Java-Themen 7
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Unbekannter Fehler Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
M Line-Fehler Allgemeine Java-Themen 8
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
Seikuassi Swing Stehe auf dem Schlauch...(BufferedReader_Writer-Fehler?) Allgemeine Java-Themen 4
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
B Fehler bei einem Programm Allgemeine Java-Themen 10
F HILFEEEEEE JAVA Fehler - Tiny Umbrella Allgemeine Java-Themen 1
N JavaFX IndexOutOfBounds-Fehler Allgemeine Java-Themen 11
N GPIB - Fehler: Unable to open device Allgemeine Java-Themen 1
S Ganzes Programm "stucked" - JVM-Fehler? Allgemeine Java-Themen 2
D Variablen Ausgabe bzw. einlese Fehler Allgemeine Java-Themen 7
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
B Eclipse Fehler in eclipse/Java Allgemeine Java-Themen 13
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
J Fehler beim parsens eine Datums Allgemeine Java-Themen 3
A Thread Fehler absichtlich provozieren Allgemeine Java-Themen 3
J Compiler-Fehler .nextLine fehler Allgemeine Java-Themen 3
B Fehler im Java-Code Allgemeine Java-Themen 4
S Java Fehler bei Konsolenprogramm Allgemeine Java-Themen 2
N Was ist ein Fehler (Requirement-Engineering) Allgemeine Java-Themen 3
C System.out.print("") Compiler Fehler Allgemeine Java-Themen 2
T Programm bleibt ohne Fehler stehen Allgemeine Java-Themen 4
G Fehler beim instanzieren einer Generischen Klasse Allgemeine Java-Themen 5
K Eclipse Fehler beim Ausführen meines Programms in Eclipse Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben