# Windows-No Disk Exception Processing Message c0000013...



## michael123456 (21. Mai 2008)

Hallo,

ich bin neu hier und auch was die Java-Programmierung angeht noch ein Anfänger!!

Ich habe einen JTree der Laufwerke (a:, c:, d:, e beinhaltet.

Scheinbar versucht Windows beim Start immer von den Laufwerken zu lesen.

Dadurch bekomme ich folgende Fehlermeldung:

"Windows - No Disk": Exception Processing Message c0000013 Parameters 75b6bf9c 4 75b6bf9c 75b6bf9c

Kann mir hier jemand helfen bzw. hatte jemand schon einmal eine solche Fehlermeldung/Exception?

Danke & Grüße

Michael


----------



## zeja (21. Mai 2008)

Erklär mal genauer was du in deinem JTree hast. Irgendwie scheinst du ja auf die Laufwerke zuzugreifen. Windows macht das nicht von selbst.


----------



## michael123456 (21. Mai 2008)

Also mein JTree zeigt das FileSystem an, so wie der Windows-Explorer.
Die ersten Nodes zeigen den Inhalt des Desktops und darunter kommen die Nodes, die die Laufwerke darstellen, also a:, c:, d:, e:!

Gruß Michael


----------



## zerix (23. Mai 2008)

Diese Fehlermeldung stammt von Windows und nicht von Java. Wenn du bei Google mal suchst, findest du eine Menge Links zu diesem Thema mit mehreren Lösungen.

MFG

Sascha


----------



## michael123456 (24. Mai 2008)

Ja ich weiß auch, dass die Exception von Windows ist.

Ich hab auch schon gegoogelt, aber allerdings noch keine Lösung für mein Problem gefunden, sonst hätte ich nicht in dieses Forum gepostet!

Die Fälle in denen das Problem bei den Suchergebnissen auftritt, sind beim Hochfahren von Windows.

Ich habe auch ein Programm mit einem anderen Source-Code, dass die gleiche Funktionalität liefert, aber nicht die Exception bringt.

Ich hol mir die die Laufwerksbuchstaben mit File.listRoots(); speichere die als TreeNode und erstelle mir dann damit den JTree - > new JTree(TreeNode ..., boolean ...)

Gruß Michael


----------



## zerix (24. Mai 2008)

Dann hat das ganze trotzdem noch nichts mit Java zu tun.

Vielleicht solltest du den Quelltext mal posten, man kann ja schlecht wissen, was programmiert hast, egal wie erfahren man ist.

Hier hast du noch ein Beispiel für einen solchen Baum.
http://www.tutorials.de/forum/rich-client-entwicklung-java-desktop/282581-filesystemtree.html

MFG

Sascha


----------



## michael123456 (24. Mai 2008)

Also, da der Code sehr lange ist, poste ich jetzt mal hier die relevanten Zeilen, wo die Fehlermeldung entsteht:


```
public LocalDirectoryTree() {

		leftSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
		// leftSplitPane.setDividerLocation(200);

		leftTreePanel = new JPanel();
		leftTablePanel = new JPanel();

		leftTreePanel.setLayout(new BorderLayout());

		// Saves the drive letters in an array
		File[] roots = File.listRoots();
		// Creates the JTree on the left side
		FileTreeNode rootTreeNode = new FileTreeNode(roots);
		leftTree = new FileSystemTree(rootTreeNode, true);



private class FileTreeNode implements TreeNode {

		private File file;

		private File[] children;

		private TreeNode parent;

		private boolean isFileSystemRoot;

		public FileTreeNode(File aFile, TreeNode aParent,
				boolean aIsFileSystemRoot) {

			this.file = aFile;
			this.parent = aParent;
			this.isFileSystemRoot = aIsFileSystemRoot;
			this.children = this.file.listFiles(new DirectoryOnlyFilter());
			if (this.children == null) {
				this.children = new File[0];
			}

		}

		// Creates the filesystem hierachy
		public FileTreeNode(File[] aChildren) {
			// adds the directories from the desktop folder
			File[] desktop = fsv.getHomeDirectory().listFiles(
					new DirectoryOnlyFilter());
			int totalLength = aChildren.length + desktop.length + 1;
			File[] bChildren = new File[totalLength];
			for (int index1 = 0; index1 < desktop.length; index1++) {
				bChildren[index1] = desktop[index1];
			}

			// adds the folder "My Documents"
			bChildren[desktop.length] = fsv.getDefaultDirectory();

			// adds all available drives from aChildren
			int index3 = 0;
			for (int index2 = desktop.length + 1; index2 < totalLength; index2++) {
				bChildren[index2] = aChildren[index3];
				index3++;
			}
			this.file = null;
			this.parent = null;
			this.children = bChildren;
		}



public class FileSystemTree extends JTree implements DragGestureListener,
			DragSourceListener, DropTargetListener, MouseListener {

		TreePath[] selectedFolders;

		// Creates the tree on the left side with the passed parameters
		public FileSystemTree(TreeNode aTreeNode, boolean allowChildren) {
			super(aTreeNode, allowChildren);
			getSelectionModel().setSelectionMode(
					TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
			addMouseListener(this);

			// sets this as a dnd source
			DragSource dragSource = DragSource.getDefaultDragSource();
			dragSource.createDefaultDragGestureRecognizer(this,
					DnDConstants.ACTION_REFERENCE, this);
		}
```

In der Zeile von FileSystemTree(...) -> super(aTreeNode, allowChildren) entsteht die Fehlermeldung!

Ich hoffe jetzt kann man eher erkennen, wie man diesen Fehler umgehen kann.

Ergänzend ist vielleicht noch zu erwähnen, dass diese Fehlermeldung nicht auf jedem PC auftritt.
Auf einem anderen PC mit JRE 1.6 läuft es ohne Fehlermeldung.

Allerdings muss ich das Programm auf jedem Rechner mit JRE 1.5 zum Laufen bringen.

Gruß Michael


----------



## michael123456 (25. Mai 2008)

Kennt vielleicht jemand ein gutes Java-Forum, wo ich Hilfe zu meinem Problem finden könnte?

Darf auch englischsprachig sein!

Danke & Grüße

Michael


----------



## zerix (25. Mai 2008)

Wie ich schon sagte, hat diese Fehlermeldung nichts mit Java zu tun. Du sagst ja selbst sogar, dass sie nicht auf jeden Rechner auftritt.
Also würde ich mal sagen, dass an der Konfiguration des Rechners liegt. 

Du solltest diese Frage wohl eher in einem Windows-Forum stellen.

MFG

Sascha


----------



## michael123456 (25. Mai 2008)

Das Problem ist, dass diese Fehlermeldung nicht nur auf einem Rechner, sondern auf mehreren auftritt.

Und mein Programm muss auf sehr vielen Rechnern laufen ohne dass ich auf diesen Rechnern Windows-Einstellungen ändere.

Von daher hatte ich mir erhofft über ein Forum einen kleinen Tipp von Profis zu bekommen, wie ich meinen Source-Code umschreiben kann, dass Windows nicht meckert.

Man kann ja auf viele unterschiedliche Arten mit Java auf Laufwerke zugreifen.

Ich hatte auf einem Rechner, der diese Fehlermeldung auch ausgibt schon ein ähnliches Programm laufen, dass auch auf die Laufwerke zugegriffen hat ohne diese Fehlermeldung auszugeben.

Deshalb will ich jetzt den Code dementsprechend umändern, weiß aber nicht recht was genau ich ändern muss.


----------



## zeja (25. Mai 2008)

Bei uns ist halt die Vermutung dass das am Windows liegt. Hab den Thread mal dahin kopiert.

Fällt Euch Windows-Leuten was dazu ein?


----------

