Interface - Klasse einladen

XeZZ

Mitglied
Hiho,

ich verzweifel hier grade daran dynamisch Klassen nachzuladen vond enen zum Programmstart nur das Interface bekannt ist.

Also ich habe mein normales programm und dann eine Datei "states.jar" Die liegt derzeit bei mir im selben Package ichd as die schon überall hingetan aber ohne Erfolg wo muss die wirklich hin? Ich will am Ende zwei *.jar Datein haben eine programm.jar (ausführbar) und eine states.jar in der sich Statusklassen befinden, die von einem der Interfaces (CellState) in der programm.jar abgeleitet sind.

So also die states.jar existiert nun wie gesagt. Wie komm ich da jetzt ran?

Hier das Codefragment:
[JAVA=42]
URLClassLoader urlCl = new URLClassLoader(new URL[] {new URL("file:/states.jar")}, this.getClass().getClassLoader());
Class<?> mainClass = (Class<?>) urlCl.loadClass("bspState");
state = (CellState) mainClass.newInstance();
[/code]

bspState ist der name der *.class Datei in states.jar und CellState wie gesagt das Interface von dem bspState abgeleitet ist. Ich bekomme eine ClassNotFoundException und ich tippe darauf, dass entweder die URL oder der Klassenname falsch sind und wahrscheinlich sogar beides :)

Würd mich freuenw enn mir jemand helfen könnte

mfg
 
S

SlaterB

Gast
eine Klasse kleingeschrieben ist ja grundverdächtig für allen möglichen Ärger,
Klassen schreibt man doch groß..,
ohne package ist auch recht schlimm, alle Klassen IN packages können diese dann nicht importieren,
ob aber auch Reflection nicht funktioniert weiß ich grad nicht,

funktioniert normaler Code mit der Klasse, wenn du die Jar in den ClassPath einbindest?
wenn nichts spannendes drin ist kannst du das jar hochladen (Anhang an Posting)

> Die liegt derzeit bei mir im selben Package ichd as die schon überall hingetan aber ohne Erfolg wo muss die wirklich hin?

muss in der Konsole wahrscheinlich direkt in den ClassPath:
java -cp .;c:/.../xy.jar Programm
 

XeZZ

Mitglied
Das mit der kleingeschriebenen Klasse (bspState meinste vermutlich) ist nur nen Schriebfehler weil ichs etwas vereinfacht hab im Prinzip kommt der name bei mir aus einer xml Datei und eigentlich auch der Pfad wo die .jar liegen soll (mit dem "file:\" bin ich ja im selben ordner einfach wie die ausführende Datei liegt oder?)

Also wenn ich bspState mit nem Pfad zu ner Klasse austausche die halt noch keine .jar ist und wohl auch im Classpath des Hauptprogramms ist funktioniert das Einwandfrei. Ich teste ja noch derzeit mit Eclipse rum und die .jar liegt im selben Projektordner (um genau zu sein liegt die Datei einmal im Packageodner und einmal im Hauptverzeichnis) also sollte die ja im ClassPath drinne sein.
 
S

SlaterB

Gast
die Jar muss extra eingebunden werden,
Project-Properties, Java Build Path, External oder Libraries, Add External Jar,

ob man zur Laufzeit Jars durch dynamisches Ändern des ClassPaths reinbekommt?..
 

XeZZ

Mitglied
Das funktioniert tatsächlich wenn ich das einbinde. Das Problem ist aber noch ncith so ganz das was ich eigentlich brauche. Wenn ich das in den Classpath einfüge und die Klasse dann ja schon zur Compilerzeit dem Programm bekannt ist, dann bringt mir das ja nichts, da diese States austauschbar sein sollen undzwar im prinzip über eine url zu eienr .jar Datei die eben so einen State enthält.

[JAVA=42]URLClassLoader urlCl = new URLClassLoader(new URL[] {new URL("file:/states.jar")}, this.getClass().getClassLoader());
[/code]

Was ich da bei new URL("") reinschriebe ist irgendwie auch vollkommen egal also ich hab da nen Pfad zuwas angegeben was es nicht gibt und das funktionierte nun trotdzem den State einzuladen, da er ja im classpath war. Irgendwo muss doch der Fehler bei der Classloadergeschichte sien oder?
 
S

SlaterB

Gast
oh, richtig, mit dem ersten Parameter kann man genau das machen,
wenn es bei dir nicht klappt, was ich als Aussage deines Postings vermute, dann arbeite an der URL,

also die erstmal für sich testen, gehts mit absoluten Pfad? muss das file:/ überhaupt sein?
was liefert
new File(url.getFile().getAbsolutePath()
? usw.
kann aktuell nicht direkt sagen was zu verbessern ist, nur in die Richtung schauen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
S static in Interface und Klasse Allgemeine Java-Themen 2
I Interface Interface / Klasse - wieso Abstract? Allgemeine Java-Themen 13
C Klassen Problem mit Funktion einer Generischen Klasse die ein Interface implementiert Allgemeine Java-Themen 0
L interface abstrakte klasse Allgemeine Java-Themen 21
G Interface oder abstrakte Klasse Allgemeine Java-Themen 4
T Parameter einer Klasse auf Interface prüfen Allgemeine Java-Themen 6
S Interface Klasse überladen. Allgemeine Java-Themen 2
K Inneres Interface äußere Klasse Allgemeine Java-Themen 7
T Instanz einer Interface abgeleiteten Klasse erzeugen Allgemeine Java-Themen 3
G Unterschied abstrakte Klasse und Interface? Allgemeine Java-Themen 3
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
OnDemand Interface imlementieren Allgemeine Java-Themen 4
Buroto Interface Allgemeine Java-Themen 2
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
M Kann man Annotationen auf Klassen einschränken die ein Interface implementieren? Allgemeine Java-Themen 1
B JaxB und @XmlIDREF mit Interface Allgemeine Java-Themen 1
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
P Abstrakte Klassen vs. Interface Allgemeine Java-Themen 4
Kirby.exe Autocloseable Interface Allgemeine Java-Themen 2
T Abgeleitetes Interface public ohne Schlüsselwort "interface"? Allgemeine Java-Themen 3
S static methode im Interface Allgemeine Java-Themen 1
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
B Vererbung Interface und implementierende Klassen Allgemeine Java-Themen 8
A Anonyme Klassen - Interface Allgemeine Java-Themen 5
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
mrBrown Namensfindung Fluent-Interface Allgemeine Java-Themen 0
J Logik in Interface Allgemeine Java-Themen 2
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
B eigenes Consumer Interface Allgemeine Java-Themen 0
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
N GUI Interface, swing Allgemeine Java-Themen 7
Thallius Konzeptproblem User-Interface Allgemeine Java-Themen 5
T Interface vs abstract Allgemeine Java-Themen 2
S Klassen Abstract, Interface und ein Chat Tool Allgemeine Java-Themen 1
D generische Interface und konkrete Methode Allgemeine Java-Themen 3
N Problem mit Generics und Interface Allgemeine Java-Themen 4
D Methode mit optionalen Parametern in Interface Allgemeine Java-Themen 3
T Interface mit generische Typen Allgemeine Java-Themen 5
M Interface einer Library implementieren Allgemeine Java-Themen 3
A Klassen ein Interface aufzwingen Allgemeine Java-Themen 4
Bananabert Interface Custom 'Event' mit Interface Allgemeine Java-Themen 10
J Interface Serializable Methodensignatur Allgemeine Java-Themen 2
J Interface Interface für Framework verwenden Allgemeine Java-Themen 4
F Interface IInterface oder Interface? Allgemeine Java-Themen 3
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
T Interface Probleme Allgemeine Java-Themen 8
M Queues und Queue Interface Allgemeine Java-Themen 3
I Mehrfaches Implementieren eines generischen Interface Allgemeine Java-Themen 9
W Java Native Interface und "mp3player" Allgemeine Java-Themen 3
M Über Liste verschiendene JComponents mit eigenem implementierten Interface ansprechen Allgemeine Java-Themen 7
P Eclipse Java Native Interface-Problem Allgemeine Java-Themen 8
Z Abstrakte Klassen /Interface Allgemeine Java-Themen 5
pg1337 Interface-Frage Allgemeine Java-Themen 24
S Interface Welchen Interface Stil favorisiert ihr? (usability) Allgemeine Java-Themen 17
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
R Implementierung eines Interface durch 2 verschiedene Klassen Allgemeine Java-Themen 6
T OpenOffice Interface Elemente Ein/Ausblenden Allgemeine Java-Themen 5
K Interface Interface comparable machen Allgemeine Java-Themen 9
T Interface > Abstract > Class Allgemeine Java-Themen 11
N Trick für Compilerfehler bei fehlendem Interface Allgemeine Java-Themen 12
G Interface -> InterfaceImplementierung Allgemeine Java-Themen 3
Ark Array durch Interface ersetzen Allgemeine Java-Themen 7
R Interface instanzieren Allgemeine Java-Themen 8
B Frage zu Interface und List Allgemeine Java-Themen 4
KrokoDiehl JNI: native im Interface Allgemeine Java-Themen 4
S normale vererbung als interface Allgemeine Java-Themen 2
E Beispiel für ein möglichst einfaches Interface Allgemeine Java-Themen 22
N Unterschied abstract interface und interface Allgemeine Java-Themen 4
S interface verbung problem Allgemeine Java-Themen 9
S problem programm mit interface: Allgemeine Java-Themen 3
R Vererbung mit Interface und Abstract Allgemeine Java-Themen 3
B Interface und von Thread ableiten Allgemeine Java-Themen 6
R Interface Serializable technische Begrenzung Allgemeine Java-Themen 2
T Interface-Referenz Allgemeine Java-Themen 2
S Interface Geschäftslokik & GUI Allgemeine Java-Themen 6
G Interface zwischen 2 Programmierern Allgemeine Java-Themen 10
C Schnittstellen(interface) Allgemeine Java-Themen 9
N List<? implements "Interface"> geht nicht Allgemeine Java-Themen 13
D javadoc interface + implementation + @overrides Allgemeine Java-Themen 16
A feststellen, welche Klassen ein Interface implementieren Allgemeine Java-Themen 3
G class, interface, or enum exp? Allgemeine Java-Themen 2
T Frage zu interface und "guter Programmierstil" Allgemeine Java-Themen 4
T Interface "on-the-fly" implementieren? Allgemeine Java-Themen 3
S Frage zu Interface Allgemeine Java-Themen 7
J Objektorientiert - Interface & Klassen Allgemeine Java-Themen 3
G Interface - Klassen implementieren das - Reflection ok? Allgemeine Java-Themen 4
T "Programming against the interface" sinnvoll? Allgemeine Java-Themen 18
G Interface mehrfach implementieren Allgemeine Java-Themen 5
@ zur Laufzeit Interface aus jar implementieren? Allgemeine Java-Themen 5
A Was ist der genau Sinn eines Interface? Allgemeine Java-Themen 13
E Oberbergriff für class und interface Allgemeine Java-Themen 20
D QuickSort, Interface Allgemeine Java-Themen 2
R Interface für Arithmethik? Allgemeine Java-Themen 3
MQue Interface implementieren Allgemeine Java-Themen 7
P Liste von Klassen die ein Interface implementieren speichern Allgemeine Java-Themen 12
L Interface Frage! Allgemeine Java-Themen 25
F Ein interface und private Methoden? Allgemeine Java-Themen 13
G nichtabstrakte Funktion zu einer Interface hinzufügen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben