Zugriff auf Klasse von package

LittleJavaCup

Mitglied
Hallo alle zusammen ^^,
ich wollte die Programmierung auf mehrere Packages verteilen, um bei späteren Projekten wieder auf das vorher geschriebene zurückgreifen zu können. Leider hab ich beim Einbinden das Problem das die Klasse aus dem Paket nicht gefunden wird.

Ich habe einmal einen Projektordner in den die Packages definiert sind und einen Projektordner mit dem eigentlichen Testprogramm für die Einbindung.

Path: Menu/src/menu/MenuClassic.java
Package
Java:
package menu;

import javax.swing.JButton;
import javax.swing.JPanel;

public class MenuClassic {
	...	
	public void createMenu(JPanel panel){
		//Buttondeklaration
	}
}
(MenuClassic.java, der Inhalt des Menu-Packages)

Path: Point_Click/src/(default packages)/Fenster.java
Testprogramm
Java:
import src.menu.*;
import bin.menu.MenuClassic;	

public class Fenster {
	MenuClassic mc = new MenuClassic();
        
        public Fenster(){
		...		
		mc.createMenu(ButtonPanel);
        }
}
(Fenster.java, in der auf das Menu-Packages zugegriffen werden sollte.)

Vorher habe ich unter Project>Properties>Java Build Path den Projektordner in das neue Projekt eingebunden.

Bei den Imports war es mir nur durch das Präfix 'src' und 'bin' möglich das Package zu importieren. In den Online-Buch (Java ist auch eine Insel) war dies auch ohne möglich. Kurioserweise war mir das im neuen Eclipse nicht möglich. :/

Als Fehler wird mir folgendes angezeigt:
Exception in thread "main" java.lang.NoClassDefFoundError: menu/MenuClassic
at Fenster.<init>(Fenster.java:19)
at Main.main(Main.java:4)
Caused by: java.lang.ClassNotFoundException: menu.MenuClassic
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more


Im Forum hab ich auch einen Beitrag gefunden in dem ein User ein ähnliches Problem hatte. Die Lösung dort konnte das Problem bei mir leider nicht beheben.
http://www.java-forum.org/hausaufgaben/141788-erste-schritte-paketen.html

Kann es vielleicht sein das bei der Eclipse (Juno-Version) auf etwas neues geachtet werden muss oder allgemein bei Java 7 ? :.?

Ich würde mich freuen wenn ihr einpaar Tipps hättet, aber auch danke schonmal fürs Durchlesen! 😉

Lg LittleJavaCup
 
Java:
package menu;
Java:
import src.menu.*;
import bin.menu.MenuClassic;
finde den unterschied

bin und src gehen dich soweit garnichts an
 
Wenn du mit Packages arbeitest, solltest du das (default package) nicht verwenden.

You can't import classes from the default package. You should avoid using the default package except for very small example programs.

From the Java language specification:

It is a compile time error to import a type from the unnamed package.
 
Hi,
danke für eure beiden Antworten. ^^
Ich hab das Package in den Projektordner reinkopiert. Und dann hiermit die Klasse verwendet:

Java:
import menu.MenuClassic;

Eine Möglichkeit das es auch funktioniert wenn es in einem anderen Projektordner steht hab ich noch nicht gefunden, aber ich versuche es weiter. Wenn ihr Tipps dazu habt bin ich natürlich froh, aber ich will erstmal schauen das ich es selbst hinkriege. 😉

Lg LittleJavaCup
 

Zurück
Oben