Keine Datei vorhanden, kein Abbruch

Status
Nicht offen für weitere Antworten.

Spliffster

Mitglied
Hallo...

ich öffne in meinem Programm eine Config-Datei.
Wenn man dieses Programm nun dowloaded dann iss die config aber noch da.

Code:
try
{
    FileReader f = new FileReader("config.bin");
    //Alles zum auslesen...
}
catch(IOException e)
{
    System.out.println("Keine Config vorhanden!");
}

Wenn man da das Programm starten will, kommt eine Fehlermeldung: "Could not find MainClass!"...

Wie krieg ich das Programm dazu trotzdem zu starten, ich denke das man eine andere EXception einsetzen muß, aber ich weiß nicht welche.... :roll:

Ivh hoffe ihr könnt mir helfen...
 
"Could not find MainClass!"

Hat überhaupt nichts mit dem Code zu tun, sondern mit einem falschen Pfad.

Du hast ja irgendwo eine Datei "Main.class" (oder so ähnlich).

Würde man den Code darin ansehen, würde sowas drinstehen;
Code:
package alpha;

public class Main{
  public static void main( String[] args ){
  }
}

Diese *.class-Datei muss in einem Ordner "alpha" sein. Nun kann man mit der Konsole das Programm aufrufen, indem man "java alpha.Main" eingibt. Allerdings muss die Konsole in demselben Verzeichnis wie der Ordner "alpha" sein. (wenn du "dir" eintippst, muss als Ausgabe, unter anderen, "alpha" erscheinen)
 
Hallo, 🙂

Die ganzen Klassen habe ich ja...
Das Programm funktionierte ja schon...

Dies ist mal die Funktion in der ich die Datei öffne und was auslese.
Code:
public int readIntFileLine(int i, String configFile)
	{
		BufferedReader file;
		String [] args;
		String text;
		int g, h = -1; 
		
		try
		{
			file = new BufferedReader(new FileReader(configFile));
			
			for (g=1; g < i; g++)
			{
				file.readLine();
			}
			text = file.readLine();
			h = Integer.parseInt(text.substring((text.indexOf("="))+ 1));
		}
		catch(Exception e)
		{
			System.out.println("Keine Datei vorhanden!");
		}
		
		return h;
	}

Wenn ich nun den Aufruf, im Konstruktor der Mainclass, auskommentire, funktioniert das ganze Programm bestens!!!
 
Das Problem liegt darin, falls die config-datei, aus der er liest, noch nicht vorhanden ist, bringt er beim starten den Fehler.
fehler.JPG


Er soll aber trotzdem starten und nicht das Programm abbrechen..., aber wie?
 
???:L

Kannst du mir mal das, vollständige, Prog schicken (mit der Config-Datei)? Ich möchte das ausprobieren (ist einfacher als so eine Ferndiagnose).

benjamin_sigg( ät )gmx.ch

mfg Beni
 
da bin ich auch interessiert - ich kann mir nicht vorstellen dass eine solche Fehlermeldung kommt, weil eine config datei nicht vorhanden ist.... Das gibts nicht... Da müsste er ja einfach sagen "FileNotFound" oder so..... ???:L
 
ich hab oft abfragen ob files existieren oder nicht und sowas kommt niemals als Fehler 😉

das isn Dialog, der ja nicht mal wo implementiert ist, glaubst du die Exception schreibt dir nen Dialog 😉

Du hast einfach dein main nicht deklariert oder was vergessen (nen Slash oder sowas!)
 
thE hat gesagt.:
ich hab oft abfragen ob files existieren oder nicht und sowas kommt niemals als Fehler 😉

das isn Dialog, der ja nicht mal wo implementiert ist, glaubst du die Exception schreibt dir nen Dialog 😉

Du hast einfach dein main nicht deklariert oder was vergessen (nen Slash oder sowas!)

🙂 Ganz so dumm bin ich nun auch wieder nicht, obwohl ich Java erst seit ein paar Tagen programmiere...

Hier habt ihr mal das Programm download´

Wenn die config.bin vorhanden ist, funktioniert ja alles, wenn ihr die nun verschiebt, bzw. löscht und dann das Programm startet, kommt dieser Fehler.
Wenn man dann in der MainDialog.java im Konstruktor, relativ weit oben, den Aufruf sder Funktion setSavedColor(); auskommentiert, funktionierts ja wieder einwandfrei....

Achso, ich benutze Eclipse als Editor...

aber probierts mal aus...
 
ich möchte nicht meckern, aber das kann gar net gehen.... Eclipse müsste meckern bis zum geht nicht mehr.
Du hast z.b. die Datei prog.java, darin aber die Klasse ebay definiert..... das geht nicht einher !!
Wie ist das kompiliert wordern ???:L
 
Ja weil ich die Datei vorhin umbenannt habe, weiß zwar nict warum, aber war halt so....
hab den Download akutalisiert, jetzt heißen die Dateien richtig...
 
aus du es aus einem jar gestartet oder so ?

Starte es mal aus der Konsole (beim zweiten ist datei nicht da):
cons.jpg
 
Spliffster hat gesagt.:
ich habs immer im Eclipse gestartet, als .jar noch gar nicht....
Dann schau doch einfach mal in die Console von Eclipse:
java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalArgumentException: Color parameter outside of expected range: Red Green Blue
at java.awt.Color.testColorValueRange(Color.java:285)
at java.awt.Color.<init>(Color.java:361)
at java.awt.Color.<init>(Color.java:340)
at Dialoge.MainDialog.SetSavedColors(MainDialog.java:255)
at Dialoge.MainDialog.<init>(MainDialog.java:81)
at ebay.<clinit>(ebay.java:6)
 
Ja und wenn man nun das öfnnen bzw. auslesen der Datei auskommentiert, funktionierts... Aber wie muß ich das Programm änderen, damit das Prog immer startet, egal ob die COnfig da ist oder nicht....
 
du liest ja das file aus um den farbenwert zu bekommen. Den int der dafür zuständige ist initialisierst du mit -1. Daher das Problem. Nimm 0 dann gehts - aber alles is schwarz.... (bzw eine Zahl von 0 - 255)
 
Ich bin wieder da... 🙁

Mein Problem ist mal wieder das gleiche... Jedoch weiß ich schon weider nicht warum.
Ich nehme stark an das es in der Funktion setSavedColors in der MainDialog.java liegt...

Programm
 
Dein Code ist:
Code:
		if( r == -1 || g == -1 || b == -1)
		{
			DiaColor = SystemColor.control;
			
		}
		else 
		{
			Color DiaColor = new Color(r,g,b);  // #### hier wird eine neue Variable definiert...
		}
		
		System.out.println("DiaColor:");
		System.out.println(DiaColor.getRed());
		System.out.println(DiaColor.getGreen());
		System.out.println(DiaColor.getBlue());

Aber besser wäre:
Code:
		if( r == -1 || g == -1 || b == -1)
		{
			DiaColor = SystemColor.control;
			
		}
		else 
		{
			DiaColor = new Color(r,g,b);  // #### hier wird einer bereits existierenden Variablen was neues zugewiesen
		}
		
		System.out.println("DiaColor:");
		System.out.println(DiaColor.getRed());
		System.out.println(DiaColor.getGreen());
		System.out.println(DiaColor.getBlue());

P.S. Eclipse hat einen guten Debugger, der hilft solche Fehler zu finden.
P.P.S. Es hat sich eingebürgert, dass man Klassen gross, und Variablen klein schreibt.

Grüsse Beni
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben