Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
Java und externe Bibliotheken
Java und externe Bibliotheken
blablub
07.05.06
20:34
Hallo,
ich setze mich gerade mit Java auseinander.Ich habe eine Bibliothek in meine Klasse importiert. Doch wenn ich das compilieren möchte funktioniert das nicht. Die Bibliothek befindet sich in ein anderem Verzeichnis als meine geschriebene Klasse, dh.
MeineKlasse befindet sich:
Desktop/meineKlassenVerzeichnis/MeineKlasse.java
Die Bibliotheken befindet sich:
Desktop/meineBibliotheke/KlassenBibliothek/...class
Wie compiliere ich jetzt das Ganze?
Mein Versuch im Terminal:
javac -classpath /Users/Binich/Desktop/meineBibliotheke/KlassenBibliothek/ MeineKlasse.java
Ausgangsverzeichnis (wo ich mich im Terminal befinde):
meineKlassenVerzeichnis
Leider gibt er mir zwei Errormeldungen, die sich auf das import der Bibliothek beziehen.
HILFE
Hilfreich?
0
Kommentare
MacMark
07.05.06
20:52
Verzeichnisse gehen nicht. Entweder gibst Du einzelne Klassen und/oder JARs an.
„@macmark_de“
Hilfreich?
0
blablub
07.05.06
20:59
und was mache ich wenn ich mehre Bibliotheken habe, die ich benötige ?
Hilfreich?
0
Rantanplan
07.05.06
21:09
Verzeichnisse gehen schon, aber nur dann, wenn da drin .class-Dateien liegen, nicht jars. Die jars muß man einzeln angeben, entweder mit einer -classpath und die jars mit Semikolon getrennt oder mehrere -classpath. Steht aber alles in der Dokumentation, die im übrigen sehr gut gemacht ist. Ein Blick da rein ist wärmstens zu empfehlen.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
Hilfreich?
0
MacMark
07.05.06
21:11
blablub
und was mache ich wenn ich mehre Bibliotheken habe, die ich benötige ?
Dann gibst Du sie alle an.
„@macmark_de“
Hilfreich?
0
blablub
07.05.06
21:15
supi Rantanplan.
Ich habe nämlich eine *.class Dateien in dem Verzeichnis. Ich habe auch, wie oben beschrieben, das Verzeichnis angeben, aber er gibt mir in meine Klasse beim "import" und bei der Klasse die ich verwende eine Fehlermeldung. Bitte seid lieb zu. Das ist mein erstes Programm
Hilfreich?
0
smile
07.05.06
21:21
hmm, poste doch mal die Fehlermeldungen und am besten die Package und Verzeichnisnamen. Alles andere ist Raterei.
„Deinen Mac kannst du lieben oder hassen - Dein PC wird Dir immer scheißegal sein.“
Hilfreich?
0
Rantanplan
07.05.06
21:34
blablub
Also ich kann dir versichern: als ich das erste Mal versucht habe ein etwas ausgedehntes Projekt mit Packages, Jars und Verzeichnishierarchien zu kompilieren, habe ich mehr als nur einmal in die Tischplatte gebissen.
Das Verzeichnis im -classpath ist ok, wenn da ein .class-File drin liegt, soweit so gut. Allerding: wenn das zu einem Package gehört (steht ja ganz oben im .java), dann muß das von diesem Verzeichnis ausgehend in dem entsprechenden Unterverzeichnis liegen, sonst geht da nix. Wenn es ohne Package ist, dann sollte das schon so richtig sein. Die Jars muß man alle einzeln angeben, bzw. wie gesagt mit Semikolon getrennt in einer Option.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
Hilfreich?
0
blablub
07.05.06
21:45
muss eigentlich bei der import "Anweisung" der Pfad von der *.class Datei ?
Hilfreich?
0
blablub
07.05.06
21:49
Das ist die Fehlermeldung:
import abc.prog1.bib.clockman.*;
^
UebClockman.java:22: cannot access Clockman_Frame
bad class file: /Users/blablub/Desktop/abc/prog1/bib/clockman/Clockman_Frame.class
class file contains wrong class: abc.prog1.bib.clockman.Clockman_Frame
Please remove or make sure it appears in the correct subdirectory of the classpath.
Clockman_Frame meinClockman;
^
2 errors
Hilfreich?
0
blablub
07.05.06
21:53
Mein pwd:
localhost:~/Desktop/abc/prog1/le04 blablub$
Eingabe:
javac -classpath /Users/blablub/Desktop/abc/prog1/bib/clockman/ UebClockman.java
Hilfreich?
0
blablub
07.05.06
22:23
das wohl nicht. Also ich habe jetzt
import Users.blablub.Desktop.abc.prog1.bib.clockman.*;
geschrieben, doch leider funktioniert das nicht. Gleiche Fehlermeldung *beiss in die Tischkante
Hilfreich?
0
smile
08.05.06
00:23
du kannst im Packagenamen beim Import nicht schreiben was du willst. Wenn eine Klasse Teil des Paketes com.foo.bar ist, wird das in der Klasse als Deklaration auch angegeben:
package com.foo.bar;
Dann *muss* der Import als
import com.foo.bar.*; oder
import com.foo.bar.Klassenname;
angegeben werden. Ebenso *muss* die Verzeichnisstruktur
com/foo/bar/Klassenname.class
sein. Alternativ kann com/foo/bar/Klassenname.class in einem .jar File (das ist am Ende ein normales .zip mit anderer Endung) sein.
Achtung: die drei Angaben müssen unbedingt übereinstimmen, sonst wird das nix.
„Deinen Mac kannst du lieben oder hassen - Dein PC wird Dir immer scheißegal sein.“
Hilfreich?
0
blablub
08.05.06
02:41
Oh man, jetzt habe ich mir eclipse herunter geladen doch leider funktioniert es dort nicht.
seaside, ich würde dir gern meine Datei geben, doch leider hab ich es zu spät gesehen. Vielleicht bist Du morgen im iChat. sag bescheid, dann komme ich auch.
Hilfreich?
0
blablub
08.05.06
21:43
Okay, ich bin da
Hilfreich?
0
blablub
09.05.06
00:01
Wollte mich nochmals an alle bedanken und besonders an seaside
Hilfreich?
0
Frank
07.05.06
21:13
Vielleicht solltest du über eine IDE wie NetBeans oder Eclipse nachdenken. Die nimmt dir nämlich ganau diese arbeit ab. Weiterhin erzeugen die auch sehr einfach .jar-Files, die du in jedem Betriebssystem mit doppelclick starten kannst.
Hilfreich?
0
seaside
07.05.06
21:06
MacMark<br>
Verzeichnisse gehen nicht. Entweder gibst Du einzelne Klassen und/oder JARs an.
Warum sollten Verzeichnisse funktionieren?
Hilfreich?
0
seaside
07.05.06
21:07
blablub<br>
und was mache ich wenn ich mehre Bibliotheken habe, die ich benötige ?
Könntest Du das bitte etwas näher spezifizieren? Was wird nicht gefunden? Klassen deiner Bibliothek oder Klassen der Java Standard Bibliotheken?
Hilfreich?
0
seaside
07.05.06
21:55
blablub<br>
Das ist die Fehlermeldung:
import abc.prog1.bib.clockman.*;
Dann sollte die Verzeichnisstruktur
$root
abc
prog1
bib
clockman
lauten. Ist das der Fall? Wie vorher beschrieben, muss die Verzeichnisstruktur stets der package Struktur entsprechen.
Hilfreich?
0
seaside
08.05.06
00:13
blablub<br>
das wohl nicht. Also ich habe jetzt
import Users.blablub.Desktop.abc.prog1.bib.clockman.*;
geschrieben, doch leider funktioniert das nicht. Gleiche Fehlermeldung *beiss in die Tischkante
Wenn's nicht gerade was geheimes ist, dann schick's mir zu. Ich werfe gerne einen Blick drauf.
iChat läuft
Hilfreich?
0
seaside
08.05.06
00:15
blablub<br>
das wohl nicht. Also ich habe jetzt
import Users.blablub.Desktop.abc.prog1.bib.clockman.*;
geschrieben, doch leider funktioniert das nicht. Gleiche Fehlermeldung *beiss in die Tischkante
Mach mal einen Screenshot der Finder Odner-Ansicht (hierarchisch). Dann kann man mehr sehen.
Hilfreich?
0
seaside
08.05.06
00:38
smile<br>
Achtung: die drei Angaben müssen unbedingt übereinstimmen, sonst wird das nix.
Ja, habe ich ja auch schon geschrieben, etwas weniger exakt allerdings. Schon komisch, dass es Probleme gibt..
Hilfreich?
0
seaside
08.05.06
00:57
Wenn der Folder so aussieht...
Hilfreich?
0
seaside
08.05.06
01:00
Dann wird per
>>>
javac -classpath libs jt.java
<<<
das File jt.java fehlerfrei übersetzt:
>>>
import alloy.com.incors.plaf.*;
class jt {
public static void main(String[] args) {
}
}
<<<
Hilfreich?
0
seaside
08.05.06
01:03
Wenn Dein Projekt etwa so aussieht...
Hilfreich?
0
seaside
08.05.06
01:05
Dann übersetzt
>>>
javac -classpath libs/alloy.jar jt.java
<<<
das Programm
>>>
import com.incors.plaf.*;
class jt {
public static void main(String[] args) {
}
}
<<<
fehlerfrei.
Hilfreich?
0
seaside
08.05.06
21:28
blablub<br>
Oh man, jetzt habe ich mir eclipse herunter geladen doch leider funktioniert es dort nicht.
seaside, ich würde dir gern meine Datei geben, doch leider hab ich es zu spät gesehen. Vielleicht bist Du morgen im iChat. sag bescheid, dann komme ich auch.
iChat läuft. Melde Dich einfach...
Hilfreich?
0
seaside
09.05.06
00:09
Gerne!
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Test: eversolo DMP-A10
Facebook & Instagram: Zuckerberg kündigt Aus de...
M4 zu M5: Erste Vorbereitungen
Mac ausschalten?
Kurz: Apple bietet iPhone 15 erstmals refurbish...
Test Marantz Model 60n
Bald viel mehr HomeKit-kompatible Geräte? Apple...
iPad Pro M4: Hinweise auf geringere Nachfrage