Compiler-Fehler Unknown Source?

J

JJayJJay

Gast
Hallo. Ich hoffe, jemand kann mir wieterhelfen.

Ich bin noch ein Anfänger in Java. Jetzt mache ich für die Arbeit ein Programm, welches eine Excel-Datei öffnet und darin arbeitet. Dazu verwende ich Apache POI.
Nachdem es mir nun endlich gelungen ist, jenes einzubauen, habe ich Probleme mit den Fehlermeldungen.

Das ist die Fehlermeldung:
Java:
fname C:\test\TestdateiNotizen.xls
java.io.FileNotFoundException: 
Pfad nicht gefunden.
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)
	at HauptfensterEditor.pb_verarbeiten_for_MouseClicked(HauptfensterEditor.java:299)
	at HauptfensterEditor$MyMouseAdapter.mouseClicked(HauptfensterEditor.java:223)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Button.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at org.apache.poi.util.IOUtils.readFully(IOUtils.java:52)
	at org.apache.poi.util.IOUtils.readFully(IOUtils.java:37)
	at org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockReader.java:73)
	at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:84)
	at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:257)
	at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:238)
	at HauptfensterEditor.pb_verarbeiten_for_MouseClicked(HauptfensterEditor.java:306)
	at HauptfensterEditor$MyMouseAdapter.mouseClicked(HauptfensterEditor.java:223)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Button.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

und hier ist der entsprechende Code-Teil:
Java:
 // java.awt.event
	class MyMouseAdapter extends MouseAdapter {
		public void mouseClicked(MouseEvent event) {

			Object object = (Object) event.getSource();
			if (object == btEinlesen) {
				pb_einlesen_for_MouseClicked();
			} else if (object == btVerarbeiten) {
				pb_verarbeiten_for_MouseClicked();
			} else if (object == btNachbearbeiten) {
				pb_nachbearbeiten_for_MouseClicked();
			} else if (object == btDetails) {
				pb_details_for_MouseClicked();
			} else if (object == btAktualisieren) {
				pb_aktualisieren_for_MouseClicked();
			} else if (object == btSchliessen) {
				pb_schliessen_for_MouseClicked();
			} else
				System.out.println("Fehler.");
		}
	}

	// methods

	// Auswählen der Datei und Einlesen in Excel
	void pb_einlesen_for_MouseClicked() {

		btEinlesen.addActionListener(this);

		setTitle("Einlesen und Verarbeiten");
		setSize(650, 440);
		setVisible(true);
		// ein shortcut zum Schließen
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				//dispose();
				System.exit(0);
			}
		});
	}

	public void actionPerformed(ActionEvent e) {
		fd1.setVisible(true);
		lab1.setText("Directory: " + fd1.getDirectory());
		display(fd1.getDirectory() + fd1.getFile());
	}

	public void display(String fname) { // Pfad auslesen
		try {
			FileInputStream fis1 = new FileInputStream(fname);
			int fileSize = fis1.available();
			byte buf1[] = new byte[fileSize];
			fis1.read(buf1);
			String str1 = new String(buf1);
			ta1.setText(str1);
		} catch (IOException e) {
			//dispose();
			System.exit(0);
		}
		// if (FileDialog.getFile() == null) {
		// dispose();
		// }
		System.out.println("fname " + fname);

		try {
			// Runtime.getRuntime().exec("c:\\test\\TestdateiNotizen.xls");
			// System.out.println(new
			// File("c:\\test\\TestdateiNotizen.xls").exists() ? true : false);
			Process p = Runtime.getRuntime().exec(
					"rundll32 url.dll,FileProtocolHandler " + fname);
			// Process p =
			// Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "
			// + "c:\\test\\TestdateiNotizen.xls");
		} catch (Exception err) {
			//dispose();
			err.printStackTrace();
		}
	}

	// Formatieren und Rechnen
	void pb_verarbeiten_for_MouseClicked() {
		HSSFWorkbook wb;
		FileInputStream input = null;
		try {
			input = new FileInputStream(fname);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println("Pfad nicht gefunden.");
			e.printStackTrace();
		}
		try {
			wb = new org.apache.poi.hssf.usermodel.HSSFWorkbook(input);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			System.out.println("Pfad konnte nicht erfolgreich übernommen werden.");
			e.printStackTrace();
		}
	}

Die Fehlermeldung "Pfad nicht gefunden." trifft glaube ich nicht zu, da es nur das ist, was ich bei Fehlschlag ausgeben lasse. Der Pfad stimmt auch auf jeden Fall, da ich mit dem Einlesen-Button die Datei öffnen kann. Sie jetzt mit dem POI auszuwählen ist das Problem. Da steht auch ständig Source nicht gefunden und wenn ich auf diese "Native Method" klicke, möchte er nen Pfad für die Source. Ich hab ihm den dann gegeben, wo die Sachen bei mir liegen, löst das Problem anscheinend aber nicht. :/
Eingebunden als Librarie sind sie eigentlich auch, also hat er den Pfad doch eigentlich??

Hat jemand die zündende Idee? :)
 
G

Gast2

Gast
Doch, du bekommst eine FileNotFoundException in der Methode pb_verarbeiten_for_MouseClicked, also ist der Pfad falsch.
Die NullPointerException resultiert daher, dass input dort dann null ist.
 
J

JJay-JJay

Gast
Also ist dieses
Code:
FileInputStream input = null;
schonma verkehrt?

Aber warum ist der Pfad falsch? Der Pfad ist im String fname gespeichert und der String wird dann übernommen. Oder Speichert er den String in fname nur während des Buttons "Einlesen" und für den Button "Verarbeiten" ist das dann weg??
Was müsste ich denn dann tun, damit er das speichert?
 
S

SlaterB

Gast
ganz schön verfahrene Fehlerbeschreibung, aber bleiben wir bei den Fakten:
du hast zwar eine Ausgabe der fname-Variable, aber die steht wer weiß wo in einer anderen Methode, die in einem anderen Objekt derselben Klasse ausgeführt sein könnte, außerdem bezieht sie sich dort auf den gleichnamigen Parameter,
nicht unbedingt ein Instanzattribut fname, denn darum geht es doch oder?

was fname in der Methode pb_verarbeiten_for_MouseClicked() ist, diese alles entscheidene Info läßt du weg,
allein die Deklaration, vor allem aber auch den Inhalt, ein einfaches System.out.println() direkt vor der Verwendung oder im catch würde so vieles so viel deutlicher erklären,
aber ne, weggelassen ;)
-----

immerhin gibts ja die Fehlermeldung, und die sagt eigentlich ziemlich deutlich durch Nichts-Sagen, dass fname im Moment einen Leerstring enthält, oder ein String nur mit nichtsichtbaren Zeichen,
vergleiche folgendes Programm:
Java:
public class Test
{
    public static void main(String[] args)
    {
        check("C:/dummy");
        check(null);
        check("");
        check(" ");
    }

    static void check(String x)
    {
        try
        {
            System.err.println("gleich FIS mit " + x + "|");
            new FileInputStream(x);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
Ausgabe:
Code:
gleich FIS mit C:/dummy|
java.io.FileNotFoundException: C:\dummy (Das System kann die angegebene Datei nicht finden)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:106)
	at java.io.FileInputStream.<init>(FileInputStream.java:66)
	at test.Test.check(Test.java:21)
	at test.Test.main(Test.java:10)
gleich FIS mit null|
java.lang.NullPointerException
	at java.io.FileInputStream.<init>(FileInputStream.java:103)
	at java.io.FileInputStream.<init>(FileInputStream.java:66)
	at test.Test.check(Test.java:21)
	at test.Test.main(Test.java:11)
gleich FIS mit |
java.io.FileNotFoundException:                      [Ausgabe wie bei dir!]
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:106)
	at java.io.FileInputStream.<init>(FileInputStream.java:66)
	at test.Test.check(Test.java:21)
	at test.Test.main(Test.java:12)
gleich FIS mit  |
java.io.FileNotFoundException:   (Das System kann den angegebenen Pfad nicht finden)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:106)
	at java.io.FileInputStream.<init>(FileInputStream.java:66)
	at test.Test.check(Test.java:21)
	at test.Test.main(Test.java:13)

> Was müsste ich denn dann tun, damit er das speichert?

du hantierst mit Listener, Stream und wer weiß was alles,
die Grundlagen zur Speicherung einer Variablen hast du aber übersprungen?
oder willst du doch noch erstmal 5 Min. nachdenken?
 
J

JJay-JJay

Gast
So. public variable eingefügt, fname hineinübertragen und es gibt keine Fehlermeldung mehr (per weiteren System.out.println-Befehlen weiß ich auch, dass er ganz durchläuft).

Ich sage vielen lieben Dank an euch. :)

P.S.: >> Was müsste ich denn dann tun, damit er das speichert?

>du hantierst mit Listener, Stream und wer weiß was alles,
>die Grundlagen zur Speicherung einer Variablen hast du aber übersprungen?
>oder willst du doch noch erstmal 5 Min. nachdenken?

Nur damit du mich besser verstehst: Ich hatte vor etwa einem Monat das erste Mal mit Java zu tun. Das war ein zweiwöchiges Seminar. Natürlich waren das nur Grundlagen, nix mit Stream, nix mit POI oder so etwas. Den Listener nur kurz angerissen. Und jetzt soll ich so ein Programm schreiben. Du kannst dir aufgrund dessen vllt etwas besser denken, wie wirr es in meinem Kopf aussieht. Da kann es schonma passieren, dass man einen dummen Fehler macht, meinst du nicht? =)

So, nochmal danke. ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Stacktrace zeigt ...(Unknown Source) Allgemeine Java-Themen 10
G Exceptions ohne Zeilennummer (Unknown Source) Allgemeine Java-Themen 8
D Open Source Library zum erstellen von PDFs Allgemeine Java-Themen 1
G Licence-Header für InHouse entwickelten Source Allgemeine Java-Themen 8
S Class File Editor -> Source not found Allgemeine Java-Themen 4
S Gibt es eigentlich Java Source Code Interpreter..? Allgemeine Java-Themen 13
H Quelltext / Source aus jar Datei rekonstruieren Allgemeine Java-Themen 1
F Open source file übersetzen Phython -> Java Allgemeine Java-Themen 4
M Source / Binaries plus Bugtracking auf Klassenebene Allgemeine Java-Themen 1
M Open Source Projekte => wo herunterladen? Allgemeine Java-Themen 2
M Open Source Projekte / source - binaries Allgemeine Java-Themen 13
A Methoden Generische Methode mit Arrays - Source Compatibility 1.7 benötigt, wieso? Allgemeine Java-Themen 3
A Source code analyze Allgemeine Java-Themen 8
E NetBeans warning: [options] bootstrap class path not set in conjunction with -source 1.6 Allgemeine Java-Themen 4
B Eclipse Attache source to own jar-files Allgemeine Java-Themen 2
P Java Probleme - java.lang.Thread.run(Unkown Source) Allgemeine Java-Themen 10
S Programm das automatisch ungenutzten Source-Code entfernt..? Allgemeine Java-Themen 4
M NOA an den Source Text des Dokumentes kommen Allgemeine Java-Themen 7
E eclipse debugger - Source not found? Allgemeine Java-Themen 1
J Open Source Projekt anbieten - Leitfaden gesucht Allgemeine Java-Themen 3
D Source Code anschauen Allgemeine Java-Themen 6
S java source code Allgemeine Java-Themen 5
N jar 2 source converter Allgemeine Java-Themen 2
aze Source Folder bestimmen Allgemeine Java-Themen 2
N C source to Java Source -> compile java layer? Allgemeine Java-Themen 9
V Source zu Javamail? Allgemeine Java-Themen 2
T JAR mit embedded Source/JavaDoc? Allgemeine Java-Themen 8
hdi Source Code von Sun's Java Klassen Allgemeine Java-Themen 11
E javax.comm: Suche eine open source Alternative zu rxtx Allgemeine Java-Themen 8
musiKk Source der Java API? Allgemeine Java-Themen 2
S einfachen editor für source code Allgemeine Java-Themen 13
S java source code Allgemeine Java-Themen 7
Y Open Source Plattformen Allgemeine Java-Themen 4
P Source code verloren habe nur noch kompilierte .jar. Allgemeine Java-Themen 12
F "source not found" in eigenem Projekt mit eigenen Allgemeine Java-Themen 2
? jar-Datei to Source-Code? Allgemeine Java-Themen 16
T User-Kennung im Source hinterlegen? Allgemeine Java-Themen 4
I Was ist ein binray / source Build ? Allgemeine Java-Themen 3
M Source Code schützen Allgemeine Java-Themen 5
G Brauche hilfe bei JMF: Wie eigene Streaming Data Source! Allgemeine Java-Themen 4
A Source-Management bei Kunden-Anpassungen Allgemeine Java-Themen 5
L Open Source Projekt Allgemeine Java-Themen 7
L Alle Attribute eines Source-Files auslesen Allgemeine Java-Themen 2
M Source von Java Klassen Allgemeine Java-Themen 2
E Closed Source Programm schuetzen Allgemeine Java-Themen 11
S Änderungen im Source-Code direkt verwenden können? Allgemeine Java-Themen 3
E Source-Code aus einer Textdatei kompilieren und ausführen Allgemeine Java-Themen 4
I Source Code Auswertung - organize imports Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben