Zugriff auf Exception-Class in lib in jar !?

Status
Nicht offen für weitere Antworten.

diggaa1984

Top Contributor
hiho,

hab grad n Problem an das ich ja noch gar net gedacht hatte ^^

Ich habe eine Lib (GrammarLib.jar) .. welche 2 Exceptions definiert und an diversen Stellen wirft. Eine weiter Lib (GfeBackend.jar) verwendet oben genannte Lib und leitet die Exceptions weiter.

Nun habe ich aber das Problem wenn ich diese GfeBackend.jar (enthält auch die GrammarLib.jar) benutze und die Exceptions weiterleite, denn ohne die OriginalLib kenn ich die Exceptions ja gar net o_O ... Sprich die Exceptions welche ganz nach aussen sollten, sind nur noch innerhalb von GfeBackend brauchbar, dort müsste ich diese aeh redefinieren/kopieren. Ist das state-of-the-art wenn man verschachtelte Jar's hat, und dennoch die Exceptions so wie sie sind weiterleiten möchte?!

  • GfeBackend.jar
    • GrammarLib.jar
      • BadGrammarException

an diese Klasse komme ich ausserhalb des GfeBackend.jar net heran oder?!
ICh würde ja auch verstehen das es kein direkten Sinn macht, aber GrammarLib.jar steht in keiner Verbindung zum Backend, diese Lib kann man locker erweitern und anders nutzen. Schnittstellen sind diesbezüglich sehr klar und sauber definiert, daher das extra jar
 
S

Spacerat

Gast
Was bedeutet "GfeBackend.jar enthält GrammarLib.jar"? Ist die gesamte Lib im GfeBackend neu definiert? Das würde bedeuten, das Grammar.jar ja gar nicht als Lib zur Verfügung stehen müsste. Normalerweise würde man in so einem Fall ja die erforderlichen Libraries mit veröffentlichen. Das bedeutet, das beide Jars zur Laufzeit im Klassenpfad zu finden sein müssen. Zur Kompilezeit von GfeBackend mus dieses Projekt natürlich dann auch die GrammarLib kennen, um deren Klassen verwenden zu können. Andererseits: Würde "BadGrammarException" nicht auch unbedingt in die GrammarLib gehören?
 

diggaa1984

Top Contributor
hm also nach mehreren Versuchen irgendwie das ganze zu lösen .. muss ich einfach nochma meine Umstände erklären und fragen wie man das state-of-the-art macht ^^

Also: In einem Projekt GrammarLib definiere ich 2 Exceptions (BadGrammarException und UnknownSubstringParseException). Das ganze Projekt wird als GramarLib.jar exportiert.

Nun verwende ich diese GrammarLib.jar in einem Projekt GfeBackend, da ich dort die Datenhaltung realisiere, welche sich auf die Klasse der GrammarLib stützt. Da es sich hierbei auch nur um Datenhaltung handelt und wenig Logik, sollten die Exceptions eben nicht behandelt sondern weitergeleitet werden. Das Backend wird später auf einem Server laufen, als Funktionsbibliothek. Die Exceptions sollten also über dieses Backend hinaus verfügbar sein indem ich sie einfach weiterleite.
Java:
package gfeBackend;

import grammar.exceptions.BadGrammarException;


public GrammarInfo importGrammar(String path, String synonym) throws IOException, BadGrammarException {
	GrammarInfo gi = GrammarFileReader.importGrammar(path,synonym,wildcards);
	gStorage.put(synonym, gi);
		
	return gi;
}//importGrammar

Das Projekt gfeBackend wird als GfeBackend.jar exportiert. Nach längerem googlen und lesen glaube ich zu denken, dass es normal wäre folgende Struktur nach dem Export vorliegen zu haben.
  • lib
    • GrammarLib.jar
  • GfeBackend.jar

Nun hab ich ein 3. Projekt, welches nun noch eine GUI vor das Backend schalten soll. Das wird das eigentliche Projekt, welches ich abgeben muss. Nun frage ich mich wie ich das ganze jar-wirrwarr nun organisiere damit ich in der Gui-Variante alles zur Verfügung habe (komplettes GfeBackend und die Exceptions aus GrammarLib). Soll ich beide Libs dann in den Classpath vom Gui-Projekt aufnehmen? Dachte das kann man damit erledigen, dass ich die GrammarLib mit dem Backend ausliefere.

Steh da grad total auf dem Schlauch ^^

EDIT: zur not könnte ich auch das GfeBackend in der Gui-Variante komplett kopieren und hätte dann nur noch die GrammarLib als import, aber das wollte ich erstmal nicht machen, weil muss ja auch anders gehen ^^
Nachteil wäre ja auch, dass ich dann nicht einfach das Backend lokal deployen kann und meine GUI-Variante is up-to-date :)
 
Zuletzt bearbeitet:
S

Spacerat

Gast
State of the Art ist es auf jeden Fall, wenn man Anwendungsübergreifende Bibliotheken in eigenen Archiven ausliefert (z.B. bei Java3D oder ähnliches die Vecmath.jar). Für Anwendungen, welche solche Bibliotheken wird dann aber eine Installationsanleitung bzw. ein Setup-Programm erforderlich, damit die verwendeten Bibliotheken zur Laufzeit auch im Klassenpfad vorhanden sind.
Das bedeutet: In GfeBackend und der GUI befindet sich keine Klasse aus GrammarLib.
Ich zum Beispiel arbeite gerade an einem Projekt (DataTypesLibrary) welches es mir ermöglicht, diverse Datentypen (TGA, PT2 usw.) mit nur einer Anweisung (Methode) zu laden. Mir würde nicht im Traum einfallen, diese Library in allen Anwendungen die sie nutzen sollen mit zu integrieren. Stattdessen binde ich sie halt in die jeweiligen Projekte als externes Archiv ein (in Eclipse über BuildPath->Configuration).
 

diggaa1984

Top Contributor
ich habe sie ja auch über den Projekt-spezifischen BuildPath eingebunden (zB: GrammarLib.jar beim Projekt GfeBackend)

die Frage ist dann, wie gestalte ich die Organisation der jar's wenn ich dann später das Backend sowie die Exceptions aus der GrammarLib benötige? Muss ich dann explizit GfeBackend und eben GrammarLib ins GUI-Projekt auf diese Weise einbinden? Gehen würde es vermutlich, aber diese Abhängigkeit müsste man doch automatisieren können oder nicht

Das bedeutet: In GfeBackend und der GUI befindet sich keine Klasse aus GrammarLib.
du meinst innerhalb der jar-archive der projekte?! hätte ich auch nicht vorgehabt, nachdem was ich so gelesen hab
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
hm ich werd vorerst das Ganze damit lösen, dass ich die Exceptions in GfeBackend neue Exceptions aber mit identischem Inhalt werfe. Mir gefällt es persönlich nicht, aber da ich zu nächsten Mittwoch schon die GUI präsentieren soll, möcht ich erstmal keine Zeit damit verlieren. Die Exceptions sind auch das einzige was ich in der GUI brauch, der Rest wird ja nur intern vom Backend benötigt.

Final wird die Lösung keinesfalls werden, bin also für weitere Gedanken zugänglich ^^
 
Zuletzt bearbeitet:
M

maki

Gast
Klassen die sowohl vom Server als auch vom Client benötigt werden sollten in jars liegen die sowohl auf dem Client als auch auf dem Server zu Verfügung stehen.
 

diggaa1984

Top Contributor
ja das wäre im Prinzip nur die GfeBackend.jar. Server und Client sollte nix mit der GrammarLib direkt zu tun haben, denn das wird ja durchs Backend erledigt.

Hab nun erstmal aus einer "BadGrammarException" (GrammarLib) eine "ImportGrammarException" (GfeBackend) gemacht, welche die Message der Ersteren übernimmt. Das Backend übernimmt das Importieren von Grammatiken wobei dabei diverse Fehler auftreten können, während des Einlesens aus einer Datei oder der weiteren internen Verarbeitung. Server oder Client merken dann nur "hat geklappt, oder hat nich geklappt". Mehr ist nicht notwendig (mit entsprechender weitergeleiteter nachricht).
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
hm habs nun doch anders gelöst:

  • Konsoletool/dist
    • lib
      • GrammarLib.jar
      • GfeBackend.jar
    • GfeConsole.jar
und in den jars eben den ClassPath auf das lib-Verzeichnis gelenkt.

Denk mal das passt soweit :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
H Zugriff verweigert Java Basics - Anfänger-Themen 5
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
B Zugriffsmodifier, Zugriff außerhalb Package Java Basics - Anfänger-Themen 5
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
S Zugriff auf protected Fields = guter Programmierstil? Java Basics - Anfänger-Themen 11
M Pfadprobleme - Zugriff auf einen Ordner im Workspace Java Basics - Anfänger-Themen 17
ruutaiokwu Bluetooth-Zugriff, braucht es dazu plattformabhängige Libraries oder kann das Java mittlerweile selbst? Java Basics - Anfänger-Themen 10
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
L Methoden Zugriff <identifier> expected Java Basics - Anfänger-Themen 13
T Java - Zugriff nur mit CLASSPATH ? Java Basics - Anfänger-Themen 7
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
S Zugriff auf Objekt Java Basics - Anfänger-Themen 5
A Klassen Zugriff auf Instanzen Java Basics - Anfänger-Themen 2
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
J Zugriff auf Variable in anderem Programm Java Basics - Anfänger-Themen 5
Q Zugriff auf Attribute Java Basics - Anfänger-Themen 3
J Klassen Zugriff auf ein "String Array" Java Basics - Anfänger-Themen 6
H Datentypen ArrayList in ArrayList: Zugriff Java Basics - Anfänger-Themen 6
J get methoden zugriff und objekt erzeugung Java Basics - Anfänger-Themen 30
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
T Zugriff auf JCheckBox Java Basics - Anfänger-Themen 8
E Netzlaufwerk Zugriff schlägt fehl Java Basics - Anfänger-Themen 11
C Group, Actor und Instanz-Zugriff, LibGDX Java Basics - Anfänger-Themen 4
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
R Methoden Methode der GUI-Klasse Zugriff auf Methoden der Hauptklasse Java Basics - Anfänger-Themen 9
S Vererbung Zugriff auf die Basisklasse einer "zweiten" Erweiterungsklasse Java Basics - Anfänger-Themen 2
Z Threads Threads - Zugriff auf Ressourcen ohne(Lock, Synchronized) Java Basics - Anfänger-Themen 2
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J Sichtbarkeit und Zugriff Java Basics - Anfänger-Themen 9
G Wieviel kostet der Zugriff auf Objektattribute im Vergleich zur Erstellung von vars in Methode? Java Basics - Anfänger-Themen 11
L Zugriff auf zwei Java-Quellcodes Java Basics - Anfänger-Themen 3
A OOP Zugriff auf Objekte von außen Java Basics - Anfänger-Themen 8
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
G Methoden Zugriff auf Methode.. aus einer anderen Klasse Java Basics - Anfänger-Themen 6
J JDialog Zugriff auf parent JDialog Java Basics - Anfänger-Themen 5
K Collections Zugriff auf ein bestimmtes Element in der Collection Java Basics - Anfänger-Themen 1
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
F Zugriff auf Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
J Erste Schritte Zugriff auf Eigenschaft Java Basics - Anfänger-Themen 2
M MVC - Problem mit Zugriff auf Objekt Java Basics - Anfänger-Themen 4
D Zugriff auf von einer anderen Klasse erstellten Objekten Java Basics - Anfänger-Themen 5
C 5 - Zugriff verweigert Java Basics - Anfänger-Themen 1
K Zugriff auf Variabeln Wert einer Instanz Java Basics - Anfänger-Themen 4
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
Z Zugriff auf andere Methoden Java Basics - Anfänger-Themen 12
Z Zugriff auf Pakete Java Basics - Anfänger-Themen 5
G Zugriff zwischen Klassen Java Basics - Anfänger-Themen 15
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
W OOP Zugriff auf mit Objekt erstellte Struktur Java Basics - Anfänger-Themen 7
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
M Variablen Zugriff von außerhalb eines Blockes auf eine Variable innerhalb eines Blockes Java Basics - Anfänger-Themen 2
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
W Typisierte ArrayList und der Zugriff auf den Typ Java Basics - Anfänger-Themen 5
M Zugriff auf Klasse Java Basics - Anfänger-Themen 2
K Zugriff auf C: Java Basics - Anfänger-Themen 5
S Das richtige Format für den SOAP Zugriff Java Basics - Anfänger-Themen 0
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
N Zugriff bei Package Struktur Java Basics - Anfänger-Themen 6
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
V Zugriff auf jProgressbar Java Basics - Anfänger-Themen 10
B Zugriff auf csv-Datei per hashmap Java Basics - Anfänger-Themen 5
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
T ZUgriff auf 'Werte' Java Basics - Anfänger-Themen 3
J Vererbung Zugriff auf private Variable Java Basics - Anfänger-Themen 10
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
B Methoden Zugriff auf Variable ermöglichen Java Basics - Anfänger-Themen 3
M Zugriff auf Arraylist Java Basics - Anfänger-Themen 7
D Kein Zugriff auf JFrame Java Basics - Anfänger-Themen 2
K Zugriff einer Klasse auf eine andere Andere -> bad operand for binary operator Java Basics - Anfänger-Themen 5
B Erste Schritte Array-Zugriff Java Basics - Anfänger-Themen 10
D OOP Zugriff auf Objekte A in Klasse A aus Objekt B in Klasse B Java Basics - Anfänger-Themen 3
T Collections Zugriff auf Elemente aus Iterator() Schleife Java Basics - Anfänger-Themen 4
J Threads Zugriff auf Attribute Java Basics - Anfänger-Themen 16
N Kein Zugriff auf Ordner -> NullPointerException Java Basics - Anfänger-Themen 2
I kein zugriff auf jList oder Textfield Java Basics - Anfänger-Themen 2
N Problem bei Zugriff auf Textfelder Java Basics - Anfänger-Themen 6
LittleJavaCup Zugriff auf Klasse von package Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben