eigene packages bzw klassen verwenden

javalerner86

Mitglied
Hallo zusammen,

jetzt hab ich den einige stunden darauf verwendet:(:(, um über google und diesem forum zum genannten thema etwas brauchbares zu finden und ich versteh ich immer noch nicht wieso es bei mir nicht funktioniert. Also:
Ich mach mal allgemeiner, vllt hilft das eher:
Ich habe eine Klasse A gegeben, die im package PackageA liegt. Dort sind nun Methoden methodeA, Variablen variableA und so weiter. Die Java Datei dazu heißt JavaA.java. Nun möchte ich in einer neuen Datei JavaB.java die Klasse A importieren.
Demnach müsste ich "import JavaA.*;" einfügen, wenn beide Java dateien in einem ordner sind, oder wenn ich die JavaA.java in einem Unterordner FolderA hab, dann müsste ich "import Folder.JavaA.*;" hinschreiben.
Soweit habe ich das verstanden. I-wie gibt es tausend möglichkeiten. Diese möglichkeit funktioniert leider nicht. ich bekomme dann die fehler meldung error: package **** does not exist
Ich habe nach der fehler meldung gesucht und leider auch nichts brauchbares gefunden um mein problem zu lösen.:( Vielen Dank für die Hilfe im Voraus.
 

E99

Aktives Mitglied
Versuchs doch mal mit

import PackageA.KlasseA;

Ich bin auch noch nicht so lange bei der Sach, aber ich glaube ohne package angabe funktioniert das nicht...

das sagt auch der Fehler...
 

javalerner86

Mitglied
Ordner1: darin sind JavaB.java und der ordner FolderA. In dem FolderA ist die Datei JavaA.java
oje ich seh gerade, dass ich die bezeichnung oben was verkehrt gemacht hab (weil kein JavaB.java vorkommt):oops: ist das so verständlich?
 

Volvagia

Top Contributor
Klassen im selben Package (und java.lang) müssen nicht importiert werden.
Es ist imho überhaupt nicht verständlich, ein Bild würde wohl sehr viel mehr helfen.
 

javalerner86

Mitglied
@Volvagia

ein bild wovon?:oops: ausgabe, oder programm? wobei, ich das mit dem programm absichtlich im orignal nicht reinstelle, weil ich ja was lernen will:) und daher das allgemein gefasst habe
 
I

ich-andreas-ich

Gast
Sind beide Klassen im gleichen Ordner, dann muss keine Import-Anweisung angegeben werden. Wurde aber hier schon erwähnt.

Sind sie nicht im gleichen Ordner, funktioniert ein Import nicht, wenn man im default-Ordner ist.

Etwas lernen ist löblich, aber hilft nichts, wenn die Frage bzw. die für eine Antwort benötigten Informationen für andere nicht verständlich ist, so dass keiner helfen kann.
 

Volvagia

Top Contributor
Weder, noch. Explorerfenster im Ordner mit ausgeklappten "Ordner"-Tree.

Code:
src
	ordnerA
		orderB
			KlasseB
		KlasseA

Hier musst du KlasseB in KlasseA mit

Java:
import ordnerA.ordnerB.KlasseB;

oder

Java:
import ordnerA.ordnerB.*;

importieren.

Packageangaben genauso:

Klasse A:

Java:
package ordnerA;

Klasse B:

Java:
package ordnerA.ordnerB;
 

javalerner86

Mitglied
@Volvagia

Wäre das von der grundstruktur richtig?
ErstesProgramm (entspricht KlasseA bei dir(genau den Ordnerbaum hab ich))
//im Ordner .../Ordner1/FolderA
package PackageA;

public class JavaA{

Methoden...

Varibalen...

public static void main.....

}

ZweitesProgramm (entspricht klasse B)
// im Ordner ..../Ordner1
import Ordner1/FolderA.JavaA;

public class JavaB{

Methoden...

Varibalen...

public static void main.....

}

das funktioniert bei mir i-wie nicht:(
 

Volvagia

Top Contributor
sorry, sorry, daran hab ich nicht, hab wohl...
Ganz zu schweigen von ganzen Wörtern. :eek:

So wie ich das sehe ist es garnicht richtig. Einerseits werden Packages per Dot getrennt, sie sollen eine verkehrte Domaine darstellen (siehe meine Signatur), außerdem scheinst du mit Ordner, Folder und Package durcheinandergekommen zu sein. Aber das ist ohne Java-Tag sehr schwer zu lesen.

Anhang -> KlasseA in packageA importiert KlasseB in packageA.packageB und Klasse C in packageC.
 

Anhänge

  • src.zip
    1,1 KB · Aufrufe: 2

javalerner86

Mitglied
@Volvagia

ok, ich habe nun genau das berichtigt und versucht zu kompilieren. und es spuckt die gleiche fehlermeldung aus. Damit jetzt nicht rätselraten aufkommt, ob ich sonst in meinem programm was falsch gemacht habe: ohne das importieren der eigenen klasse funktioniert das programm fehlerfrei. Auch die eigene Klasse lässt sich ohne probleme kompilieren.

Ich hatte heute nachmittag auch noch überlegt, ob ich an den umgebungsvariablen was vergessen haben könnte, aber wenn ich das getan hätte, könnte ich mein programm ohne das importieren der eigenen klasse nicht kompilieren.
 

Volvagia

Top Contributor
Dann zeig doch mal, was du verändert hast und was wo liegt.
Ich weiß auch nicht, was du mit dem "Importieren der eigenen Klasse" meinst? Willst du, dass sich die Klasse selbst importiert? Das ist zwar theoretisch möglich, aber wie ich bereits gesagt habe muss eine Klasse im selben package nicht importiert werden. Und eine Klasse sich selbst schon garnicht. xD
 

javalerner86

Mitglied
Ordnerbaum (Java ist ein anderer Ordner, also nicht der installierte Ordner. das sollte nicht verwirren, sorry)
Ordner "Java" ( mit Ordner "komma" (mit Klasse komma1) und Klasse Ieee)




Kopf von Ieee.java
Java:
package Java;

/* import java packages */
import java.io.*;
import java.lang.Math.*;
import komma.komma1;

public class Ieee
{
...
}




Kopf von komma1.java
Java:
package Java.komma;

public class komma1
{
     public int methode1(){....};
     public int zahl;
    ...
}

Ieee.java ist mein hauptprogramm. nun möchte ich methode1 aus komma1.java verwenden, dazu muss ich die klasse importieren? korrigier mich bitte, wenn ich totalen mist rede. wie verwenden weiß ich noch nicht, aber das importieren bereitet die probleme.
 
Zuletzt bearbeitet:

Final_Striker

Top Contributor
Verwende bitte Java Tags für Quellcode, steht auch dick und rot über dem Eingabefenster.

Java™ Quelltext ist bitte in [ JAVA]-Tags zu schreiben: [ JAVA]hier Java Code einfügen[/ JAVA]
 

javalerner86

Mitglied
Keiner eine Idee?...

Vllt stelle ich die Frage mal was anders: Wie benutzt ihr Methoden aus einer anderen Klasse in eurem Programm? (Ein Beispielcode wäre dabei sehr hilfreich für mich)
 

Volvagia

Top Contributor
So?

Java:
private static void initServices() {
	//TODO: Read from persistent
	ServerInfo info = new ServerInfo("Mail0", "localhost", 34242, ServerInfo.MAIL_SERVER);
	try {
		info.startService();
	} catch (IOException e) {
		logger.log(Level.INFO, "Service could't start: " + e.getMessage());
	}
}

Java:
public void startService() throws IOException {
	Socket socket = new Socket(host, port);
	boolean succefullStart = service.start(serviceName, socket);
		
	if(succefullStart) {
		logger.log(Level.FINEST, "Starting service " + serviceName + " succefull");	
	}
}

Java:
@Override
public boolean start(String name, Socket socket) {
	try {
		SecretKey secretKey = handleEncryption(socket);
		connectionConfig = new CommandConnectionConfig(socket, true, secretKey);
	} catch (Exception e) {
		logger.log(Level.WARNING, "Could not handle encryption, abouting: " + e.getMessage());
		return(false);
	}
		
	new Thread(this, "Service " + name).start();
	return(true);
}

Ich würde dir raten zu einer IDE wie Eclipse zu greifen. Denn wenn du jetzt tagelang mit den Packages herumtust wirst du irgendwann die Lust verlieren und mit Java aufhören. Und das wäre schade.
 

javalerner86

Mitglied
@Volvagia

so schnell verliere ich die lust nicht, sonst wäre ich nicht so nervend damit, sorry=) und naja ich habe bisher in jeder programmiersprache, die ich verwendet habe, von konsole aus programmiert.

frage: wie sieht der programmkopf von deinem ersten beispiel aus? wie hast du da die methode ServerInfo importiert?
 

Volvagia

Top Contributor
Garnicht, die liegt im selben Package. :bae:

Würde ich sie aber importieren, würde das dann so aussehen:

Java:
package at.atc.ows.server.mailbox;

import java.io.IOException;
import java.math.BigInteger;
import java.net.Socket;
import java.security.InvalidKeyException;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.PublicKey;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.RSAPublicKeySpec;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;

import at.atc.ows.api.SimpleConsoleHandler;
import at.atc.ows.server.api.AbstractWaitForConnectionsThread;
import at.atc.ows.server.api.Command;
import at.atc.ows.server.api.Command.CommandConnectionConfig;
import at.atc.ows.server.api.SslHelper;

import at.atc.ows.server.mailbox.ServerInfo; //<- Hier.

public class MailboxServerMain {
	private static Logger logger;
	
	public static void main(String[] args) {
		initLogger();
		initServices();
//...........
 

javalerner86

Mitglied
aaahhh, ok. vllt pack ich meine beiden dateien besser in dasselbe package, dann brauch ich gar nicht zu importieren. und benutze die methode einfach so, richtig?

oje wie dämlich war mein thread, sorry=(((
 

Volvagia

Top Contributor
Ist nicht dämlich.
Mein Projekt besteht laut Windows-Suche aus 168 Java-Dateien. Zwar sicher ein Witz gegenüber dem, was die anderen hier schreiben, aber wenn ich das alles in nur ein Package werfen würde würde ich noch weniger finden als ichs eh schon tue.

Sich mit Packages zu beschäftigen ist zwar wichtig, ich bin aber im Gegensatz zu den meisten anderen der Meinung, dass es nichts bringt sich tagelang mit solchen Sachen aufzuhalten, nicht nur weil es heutzutage fast jede IDE für einem erledigt. Am Anfang müssen gewisse Dinge außenvor gelassen werden, schließlich kann man nur eins nach den anderen tun/lernen. Es gibt nicht viele Leute denen es wirklich Spaß macht sich stundenlang vor dem Compiler zu setzen und Fehler auszumerzen, deshalb finde ich es macht mehr Sinn direkt durchzustarten. Man braucht eben einen Ansporn, und das ist für fast alle das Resultat in Form einer graphischen Ausgabe. Der Umgang mit Packages, Programmieren im Texteditor oder kompilieren per Shell kann man später immer noch lernen bzw. üben.
 

javalerner86

Mitglied
Mein Problem ist gelöst=) ich habs durch ausprobieren und weiterlesen geschafft
und damit diejenigen, die dasselbe problem vllt i-wann auch mal haben, nicht verzweifeln, versuche ich meine lösung zusammen zu fassen.

erstmal vielen Dank an die Personen, die mir anreize, ideen und beispiele gegeben haben, insbesondere Volvagia (es hat richtig spaß gemacht mich mit dir darüber zu unterhalten)=))

Ich programmiere mit texteditor (notepad++) und kompiliere über konsole (Eingabeauffoderung).

Ich setze hier die richtig gesetzten Umgebungsvariablen voraus, die man in anderen foren auch findet. Des Weiteren solte man bei Classpath noch ";." ergänzen. Der punkt macht bei mir den unterschied aus, ob das hauptprogramm den unterordner mit der klasse findet oder nicht (prinzipiel heißt der punkt ja, dass das programm von dem ordner aus, in dem man sich in der Eingabeaufforderung befindet, nach der klasse oder dem package sucht, den man importiert hat; z.B. import ordner1.klasse1;)

Zusatz:
Wird eine Klasse einem package zugeordnet, dann wird der ordner, in dem sich diese klasse befindet, genauso benannt wie das package.

Die andere Klasse, in dem man eine klasse A einfügt, braucht nicht im selben package zu sein und wird mit import ordner.A; eingefügt.

Das sind soweit meine erfahrungen und die obigen beiträge zusammengefasst.

evt hilfreiche link zum thema pakete und so, sind folgende:
Pakete in Java
[Java] - Klasse einbinden - RR:Board
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Aus package auf andere eigene packages zugreifen? Java Basics - Anfänger-Themen 7
L Eigene Packages importieren Java Basics - Anfänger-Themen 2
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
T Datentypen Eigene Datentypen Java Basics - Anfänger-Themen 15
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
S Eigene LinkedList Klasse Java Basics - Anfänger-Themen 4
I Eigene Java Tools Nutzung Java Basics - Anfänger-Themen 6
G eigene Bibliothek einbinden Java Basics - Anfänger-Themen 1
K Eigene Annotations, Pre-/Post-/Call-Method Java Basics - Anfänger-Themen 6
O Erste Schritte Eigene charAt(i) Methode schreiben Java Basics - Anfänger-Themen 10
D Methoden Eigene Methode um alle Ausgaben aufzurufen Java Basics - Anfänger-Themen 17
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
P Maven und eigene Jars Java Basics - Anfänger-Themen 4
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
A Eigene Methoden entwicken Java Basics - Anfänger-Themen 3
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
H GSON-Bibliothek für eigene Programme benutzen Java Basics - Anfänger-Themen 2
H Klassen auf eigene Klasse zugreifen Java Basics - Anfänger-Themen 2
N Eclipse - eigene Icons unter ClassPath Resource Java Basics - Anfänger-Themen 0
N Eigene Stream Methoden implementieren Java Basics - Anfänger-Themen 3
R eigene Graphikbedienelemente Java Basics - Anfänger-Themen 8
V Generics / eigene Liste Java Basics - Anfänger-Themen 4
T Eigene Bedingung in IF-Bedingung Java Basics - Anfänger-Themen 22
P Java 8 & Eigene Applets Java Basics - Anfänger-Themen 3
E Best Practice Exaktes Rechnen mit (Pseudo-)Rationalen/Realen Zahlen. Operations Zuweisung für (eigene) Klassen Java Basics - Anfänger-Themen 3
G eigene Bibliothek in Java importieren Java Basics - Anfänger-Themen 5
D Klassen Eigene Klasse für ArrayList Java Basics - Anfänger-Themen 6
M Wann eigene implementierte HashCode Methode zwingend erforderlich? Java Basics - Anfänger-Themen 1
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
P Vererbung Eigene HashMap Variante Java Basics - Anfänger-Themen 2
J Eigene Klasse für die Variablen? Java Basics - Anfänger-Themen 3
P Eigene Knöpfe mit eigenem Listener Java Basics - Anfänger-Themen 5
S Wann existiert eine Instanz (eigene Klasse) Java Basics - Anfänger-Themen 8
T Muss ein Parametertest immer eine eigene Testklasse sein? Java Basics - Anfänger-Themen 3
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
O Denkanstöße für eigene Konfigurations-Datei Java Basics - Anfänger-Themen 12
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
C eigene Exception Java Basics - Anfänger-Themen 4
M externe JARs in die eigene JAR einbinden Java Basics - Anfänger-Themen 9
V Klassen import - einfaches Umleiten auf eigene Klassen? Java Basics - Anfänger-Themen 8
S Eigene Exception Klasse - fehlender Konstruktor mit String Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
A Objekte in eigene Klasse auslagern Java Basics - Anfänger-Themen 2
S [JavaFX 2.1] - Eigene Sprachauswahl? Java Basics - Anfänger-Themen 4
K Klassen Eigene Exception verwenden Java Basics - Anfänger-Themen 9
E Eigene Stackklasse Java Basics - Anfänger-Themen 7
B Eigene Exceptions entwerfen Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
N Eigene Methoden-> Werte übergeben Java Basics - Anfänger-Themen 5
U Klassen Eigene Klassen importieren Java Basics - Anfänger-Themen 13
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E Object in eigene Klasse umwandeln? Java Basics - Anfänger-Themen 7
S Eigene Klassen addieren Java Basics - Anfänger-Themen 3
B OOP Eigene Objekte in Arrays zusammenfassen Java Basics - Anfänger-Themen 3
E Eigene class datum Java Basics - Anfänger-Themen 2
G Eigene MessageBox kreieren Java Basics - Anfänger-Themen 9
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
F Klassen Eigene Klasse definieren Java Basics - Anfänger-Themen 4
S Eigene KeyEvent-Mask erstellen Java Basics - Anfänger-Themen 4
X Eigene Libary Java Basics - Anfänger-Themen 2
Crashbreaker Eigene Java-Programm ohne hilfe des CMD starten Java Basics - Anfänger-Themen 11
A Klassen Eigene Datenklasse - Strings mit fixer Länge Java Basics - Anfänger-Themen 2
T eigene Exception Klasse Java Basics - Anfänger-Themen 12
G Shape um eigene Achse drehen Java Basics - Anfänger-Themen 2
P Vererbung Basisklasse soll eigene Methode benutzen Java Basics - Anfänger-Themen 38
F Eigene Klasse für die Keys von HashMap Java Basics - Anfänger-Themen 5
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
G Eigene Klasse als Array, zugriff? Java Basics - Anfänger-Themen 2
xehpuk Ordner "Eigene Bilder" ansteuern Java Basics - Anfänger-Themen 3
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
S Eigene Stack Klasse Java Basics - Anfänger-Themen 26
D Eigene equals methode schreiben Java Basics - Anfänger-Themen 4
dataframe OOP Eigene typisierte Liste Java Basics - Anfänger-Themen 3
W GUI als eigene Klasse oder in die Startklasse? Java Basics - Anfänger-Themen 21
T Konstruktor für eigene Klasse erstellen Java Basics - Anfänger-Themen 6
H Buttonbefehle in eigene Klasse schreiben Java Basics - Anfänger-Themen 8
M Datentypen Eigene iterierbare Liste Java Basics - Anfänger-Themen 4
G Eigene Klasse für externe Befehle - Warten auf Prozesse Java Basics - Anfänger-Themen 6
S Klassendiagramm - nur eigene Klassen? Java Basics - Anfänger-Themen 3
nrg Eigene simple List-Klasse programmieren Java Basics - Anfänger-Themen 3
C Eigene Interpreter-Programmiersprache mit Java Java Basics - Anfänger-Themen 17
B eigene Exception.... Java Basics - Anfänger-Themen 5
N Java Programm soll Datei in eigene jar schreiben Java Basics - Anfänger-Themen 13
F Eigene Exception StackTrace und Message ist leer warum??? Java Basics - Anfänger-Themen 3
M Eigene Pakete in Eclipse erstellen Java Basics - Anfänger-Themen 5
M Eigene Hash Funktion Java Basics - Anfänger-Themen 5
O Eigene Exceptions Java Basics - Anfänger-Themen 11
H eigene Schriftarten registrieren Java Basics - Anfänger-Themen 5
Kasoki Eigene Funktionen / Commands Java Basics - Anfänger-Themen 14
M Eigene LinkedList und Nodes Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben