Import von Klassen aus anderen Projekten mit dem Setzen des "Classpath"

Robotron

Mitglied
Hallo,

ich bin Java-Rookie und möchte eine Klasse von einem Projekt ( Projekt 1) in einem anderem Projekt (Projekt 2) verwenden bzw. in dieses importieren.

Bei der zu importierenden Klasse im Projekt 1 habe ich den Classpath gesetzt (über Properties – Java Build Path – Projects – Classpath), so wie ich es in einem Tutorial gelernt habe.

Nun möchte ich im Projekt 2 Objekte erstellen anhand der importierten Klasse aus dem Projekt Projekt 1 (der Klasse, wo ich den Classpath gesetzt habe).

Leider klappt das nicht. Die Fehlermeldung fordert mich auf, im Projekt 2 ein Klasse für das Objekt zu erstellen.

Auf was muss ich beim Setzen eines Classpath noch achten, damit die Klasse in dem anderem Projekt importiert wird bzw.verwendet werden kann?
 

Robotron

Mitglied
Vielen Dank, für den Hinweis: Ich haben den Classpath beim Projekt 2 gesetzt (und zwar bei der Klasse mit der Main-Methode, in der ich die Objekte aus Projekt 1 erzeugen möchte).
Nun erscheint beim Erzeugen der Objekte aus Projekt 1 die folgende Fehlermeldung:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The declared package "" does not match the expected package "Paw_Petrols.src"

at Paw_Petrols.src.Hunde.<init>(Hunde.java:1)
at Haupt.main(Haupt.java:207)


Hinweis: Das Projekt 1 heißt "Paw_Petrols", und die Klasse, aus diesem Projekt, mit der ich Objekte im Projekt 2 erstellen möchte, heißt "Hunde".

Für weitere Hilfe wäre ich dankbar.
 

KonradN

Super-Moderator
Mitarbeiter
Ich habe gerade Probleme, zu verstehen, was genau Du gemacht hast. Das klingt etwas danach, dass Du Verzeichnisse, in denen die Sourcen liegen, angegeben hast. Das ist aber falsch.

Also Du hast ein Projekt Paw_Petrols. In dem Projekt hast Du dann ein Verzeichns src in dem Du dann Deine Java Sourcen ablegst.
Du hast da dann vermutlich eine Klasse Hunde in der Datei Hunde.java

Wenn Du dies übersetzt, dann entsteht eine Datei Hunde.class. Diese class Dateien sind das, was Du dann letzten Endes brauchst.

Wenn Du also in einem anderen Projekt genau diese Klasse nutzen willst, dann brauchst diese class Datei. Dies kann entweder direkt erfolgen, in dem Du die class Datei in einem Verzeichnis hast und Du dieses Verzeichnis im Classpath angibst. Oder - was üblich ist - aus dem Projekt erzeugst Du eine jar Datei. Das ist eigentlich eine ZIP Datei, in der dann u.a. diese class Datei wäre. Dann würdest Du diese jar Datei im Classpath angeben.

Wenn Du dann die Klasse ansprechen willst, dann spielt der Ort, in der die Source Datei einmal lag, keine Rolle mehr. Du gibst dann nur noch den relativen Pfad vom Classpath an.

Hier kommen dann mehrere Punkte ins Spiel, die wichtig sind:
a) Es ist üblich, Klassen in Packages zu packen. Das Default Package wird nicht genutzt (und hat auch gewisse Probleme wenn Du mit Java 9+ und Modulen arbeiten würdest) Du solltest es also in ein Package packen, also
a.1) In den Source kommt oben eine package Angabe mit einem Namen.
a.2) Die Datei verschiebt sich in Unterverzeichnisse. Der . im Package-Namen wäre der Verzeichnis Trenner, also ein Package a.b bedeutet, dass es ein Verzeichnis a gibt, in dem dann ein Verzeichnis b kommt und in dem Verzeichnis ist dann die Source Datei.
a.3) Im Ergebnis sind diese Verzeichnisse dann auch vorhanden. Und das bleibt dann auch. Classpath ist weiterhin das oberste Verzeichnis, also wir haben ClasspathAngabe/a/b/DeineKlasse.java wobei ClasspathAngabe halt ein Verzeichnis oder eben das jar Archiv sein kann.

Ich bin im Augenblick am überlegen, wie man das am Besten machen kann am Anfang. Ich denke, dass hier schon ein Umstieg auf Maven Sinn machen kann. Das ist dann zwar schon etwas mehr, das man sich aneignen muss, aber das wäre aus meiner Sicht das Einfachste. Das Erlernen von IDE spezifischen Dingen halte ich für wenig sinnvoll zumal das Helfen erschwert wird.

Ganz schneller Start mit manuellen Arbeiten:
Was Du am Anfang machen kannst, ist einfach ein Verzeichnis "libs" oder so in deinem zweiten Projekt. Und da legst Du ein Verzeichnis Paw_Petrols an.
In dieses Verzeichnis kopierst Du dann, was im Projekt 1 erzeugt wurde (Verzeichnis out oder bin oder so) - sprich: Die class Dateien werden kopiert. Und nur die Verzeichnisse der Package-Struktur kommen mit.
Und in den Classpath nimmst Du dann dieses libs/Pas_Petrols Verzeichnis auf.
Immer wenn sich Projekt 1 verändert hat, dann musst Du die class Dateien neu kopieren in das Projekt 2.
 

KonradN

Super-Moderator
Mitarbeiter
Maven ist ein Build Werkzeug. Das hat erst einmal nichts mit Eclipse zu tun. Aber da es ein viel benutztes Build Werkzeug bei Java Projekten ist, unterstützen alle gängigen IDEs für Java auch Maven und oft ist Maven bei der Installation der jeweiligen IDE mit dabei.

Wichtig ist aber aus meiner Sicht: Lass Dir keine Maven Projekte für Eclipse Projekte generieren. Eclipse Projekte haben einfach alles in src während bei Maven die Sourcen aufgeteilt werden in Verzeichnisse wie src/main/java, src/test/java und so. An solche Dinge sollte man sich gerade am Anfang halten. Das vereinfacht dann, dass man Dinge per Copy & Paste in sein eigenes Projekt übernimmt.
 

Robotron

Mitglied
Hallo, ich danke erstmal für die vielen Tips.
Als erstes wollte ich mal Ordnung in meine Projekte bringen und habe alle Klassen in neue Pakte gezogen, da ich die aus dem "default package" raushaben wollte.
Nun wird allerdings beim Starten eines Projektes in der Hauptklasse mit der Main Methode diese nicht mehr gefunden.
Es erscheint die Fehlermeldung java.lang.ClassNotFoundException:

Ich habe schon recherchert: Ich soll jetzt hier wieder einen Classpath setzen, so dass die JAR-Dateien wieder gefunden werden.
Einige Artikel verweisen sogar auf die CMD.
Wie würde es denn jetzt am einfachsten gehen, so dass das Programm die JAR Dateien wieder findet?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N einbinden von anderen klassen mittels import Java Basics - Anfänger-Themen 2
E Erste Schritte Import von Klassen Java Basics - Anfänger-Themen 8
V Klassen import - einfaches Umleiten auf eigene Klassen? Java Basics - Anfänger-Themen 8
K OOP Java import zwei gleichnamiger Klassen Java Basics - Anfänger-Themen 5
M java erkennt import-klassen nicht?! Java Basics - Anfänger-Themen 39
F import Statement für Klassen die dem default Package zugeordnet sind? Java Basics - Anfänger-Themen 2
B Import von Klassen Java Basics - Anfänger-Themen 3
B Kann mir einer die Import Klassen erklären? Java Basics - Anfänger-Themen 8
A import von klassen Java Basics - Anfänger-Themen 2
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
F Import SSL Zertifikat in keystore Java Basics - Anfänger-Themen 10
M import com.sun.star.uno Java Basics - Anfänger-Themen 25
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
java-starter Erste Schritte import von package Java Basics - Anfänger-Themen 4
J The import org.bukkit cannot be resolved Java Basics - Anfänger-Themen 3
E Paketstruktur und import Klauseln Java Basics - Anfänger-Themen 14
D import Befehle Java Basics - Anfänger-Themen 3
E Unterschied zwischen new und import Java Basics - Anfänger-Themen 5
O Package import-Klausel Java Basics - Anfänger-Themen 10
O extrends vs. import Java Basics - Anfänger-Themen 14
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
W JavaFX import Fehler/Zellularautomaten Java Basics - Anfänger-Themen 1
T Erste Schritte JAR import Fehler Java Basics - Anfänger-Themen 2
Textsurfer Erste Schritte CSV Import Reader Writer Java Basics - Anfänger-Themen 0
S BufferedReader TextFields Import Java Basics - Anfänger-Themen 5
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
G import utils.SourceHandler; Java Basics - Anfänger-Themen 5
L Klasse/Variable import Java Basics - Anfänger-Themen 7
W Erste Schritte import java.util.scanner funktioniert nicht Java Basics - Anfänger-Themen 2
slejden Erste Schritte der Befehl import Java Basics - Anfänger-Themen 2
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
J BlueJ und import-Anweisungen, wie geht das? Java Basics - Anfänger-Themen 4
I DATEV import / export Java Basics - Anfänger-Themen 2
O Probleme beim import von Projekten in Eclipse Java Basics - Anfänger-Themen 7
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
F Import von Zip-Datei in Eclipse Java Basics - Anfänger-Themen 1
? Klassen Verständnisprobleme mit Import Anweisungen Java Basics - Anfänger-Themen 6
FINF_AW_Alex import funktioniert nicht Java Basics - Anfänger-Themen 4
A Import anderer Classen aus anderen Projekten Java Basics - Anfänger-Themen 6
B Doppelte Werte aus Array entfernen ohne Import - Algorithmus Java Basics - Anfänger-Themen 5
M import von eigener Klasse Java Basics - Anfänger-Themen 12
S import java.*; vs import java.awt.TextArea Java Basics - Anfänger-Themen 7
B ThreadPoolExecutor - import java.util.concurrent Java Basics - Anfänger-Themen 2
F import Prog1Tools.IOTools Java Basics - Anfänger-Themen 9
J Aus "import" die genutzte Library erfahren Java Basics - Anfänger-Themen 4
T Erste Schritte import java.lang.System.out Java Basics - Anfänger-Themen 4
B Compiler-Fehler import java.io.*; führt zu error Java Basics - Anfänger-Themen 2
N Probleme mit dem Import Java Basics - Anfänger-Themen 8
J ORACLE Spatial ungültiger Spaltenindex beim Import Java Basics - Anfänger-Themen 2
D Geschwindigkeits unterschied bei import? Java Basics - Anfänger-Themen 13
C import Java Basics - Anfänger-Themen 7
O Compiler-Fehler import funktioniert nicht Java Basics - Anfänger-Themen 2
D Import von import org.apache.commons.math3...... Java Basics - Anfänger-Themen 2
J Import in Java Java Basics - Anfänger-Themen 4
A Import Anwendungen Java Basics - Anfänger-Themen 2
D Frage zu der import Anweisung in Java Java Basics - Anfänger-Themen 15
S Erste Schritte import für andere Klassenfiles verfügbar machen? (Java unter Eclipse) Java Basics - Anfänger-Themen 8
F Problem mit import Java Basics - Anfänger-Themen 8
C Umgebungsvariable import anweisung gibt fehlermeldung Java Basics - Anfänger-Themen 2
algebraiker Textdatei-Import Java Basics - Anfänger-Themen 8
T .Java Import Java Basics - Anfänger-Themen 19
N Erste Schritte import javax.media.3d....; //Fehlermeldung: cannot be resolved Java Basics - Anfänger-Themen 10
N Import Problem, Applet will nicht Java Basics - Anfänger-Themen 6
Q Classpath Package import Java Basics - Anfänger-Themen 6
J Erste Schritte import awt.* ;awt.event.*; Java Basics - Anfänger-Themen 3
B Wie funktioniert der Import von Dritt-packages in Eclipse? Java Basics - Anfänger-Themen 5
C Fehlermeldung "The import TestProjekt cannot be resolved". Warum? Java Basics - Anfänger-Themen 7
W Problem beim CSV-Import Java Basics - Anfänger-Themen 5
K Collections Problem beim import von Packages Java Basics - Anfänger-Themen 10
F Import mit .* oder nicht? Java Basics - Anfänger-Themen 3
D Frage zu Exceptions und der import Anweisung Java Basics - Anfänger-Themen 12
F Problem mit "import" Java Basics - Anfänger-Themen 9
M Import Unicode Textfile Java Basics - Anfänger-Themen 10
S import - Anweisung; Setzen der Classpath Java Basics - Anfänger-Themen 2
W Wann nutze ich "import"? Java Basics - Anfänger-Themen 12
M JS Import aus externer Jar Datei Java Basics - Anfänger-Themen 5
D OpenCSV Fehllender Konstruktor trotz import und Buildpath Eintrag Java Basics - Anfänger-Themen 1
M import einer Grafik aus .jar funktioniert nicht Java Basics - Anfänger-Themen 6
1 JMF Import Problem Java Basics - Anfänger-Themen 3
D import-fehlermeldung Java Basics - Anfänger-Themen 3
K OOP import Java Basics - Anfänger-Themen 13
B import Anweisung Java Basics - Anfänger-Themen 2
D OOP Pakete Import Java Basics - Anfänger-Themen 15
T Netbeans: Import von Externen Packet Java Basics - Anfänger-Themen 5
T Import von org.* Java Basics - Anfänger-Themen 6
E Frage zu "import" Java Basics - Anfänger-Themen 5
J Import von Paketen Java Basics - Anfänger-Themen 10
U2nt import wird nicht "angenommen" Java Basics - Anfänger-Themen 9
O import ja....extends nein Java Basics - Anfänger-Themen 5
T The import In cannot be resolved Java Basics - Anfänger-Themen 31
X Befehl import Java Basics - Anfänger-Themen 21
T import java.util.scanner cannot be resolved Java Basics - Anfänger-Themen 19
G JAR ohne import in anderer JAR aufrufen Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
E import org.eclipse.swt.Events.PaintListener; Java Basics - Anfänger-Themen 1
D Import Java Basics - Anfänger-Themen 2
C import von Java Klasse ohne package Java Basics - Anfänger-Themen 10

Ähnliche Java Themen


Oben