Aufruf externer Funktionen

Gazelli

Mitglied
Hallo Gemeinde

Ich bin Neuling in der Java Welt und möchte gern ein Steuerprogramm schreiben das eine Art Container für einen Steuerrechner bereitstellt.

Ich komme eigentlich aus der C++ Welt ( Windows und Linux) und suche eine Möglichkeit eine externe Java Funktion aus einer Art "DLL" aufzurufen. Ich möchte eine Library laden und der Funktion Parameter übergeben die die Kontrollfunktion dann auch verändern können muss. In C C++ würde ich also eine DLL Funktion auifrufen und der Funktion Pointer auf die Variablen übergeben. Geht das auch in Java ?

Gazelli
 
Zuletzt bearbeitet:

Michael...

Top Contributor
suche eine Möglichkeit eine externe Java Funktion aus einer Art "DLL" aufzurufen.
Wenn damit gemeint ist aus Java auf Java Methode (nicht aus C++ eine Java Funktion nutzen) zu zugreifen:
In Java kann man fremde Klasse (.class) bzw. ganze Archive (.jar) beliebig einbinden. Die Klassen bzw. Archive müssen nur über den CLASSPATH zu finden sein.
Ich möchte eine Library laden und der Funktion Parameter übergeben die die Kontrollfunktion dann auch verändern können muss. In C C++ würde ich also eine DLL Funktion auifrufen und der Funktion Pointer auf die Variablen übergeben. Geht das auch in Java ?
In Java gibt es kein call by reference. Java kennt ausschließlich call by value. Wenn man aber mit "Objekt-Containern" arbeitet ist auch das möglich.
 

Gazelli

Mitglied
Danke für Deine Info

Ich brauche einfach eine "Methode" die in meiner Applikation per Textfeld und Funktionsname eingetragen wird und dann von meiner Software aufgerufen werden kann. Die Variablenfrage kann ich auch global lösen . Ich frage mich nur ob es möglich ist eine Funktion extern zu überladen (ohne das der Benutzer Java programmieren muss) Ich stelle mir eine von Programmierern in Jave zu schreibende Bibliothek vor die ein "Nicht Porgrammierer einfach per (Libray Name, Funtionsname ) aufrufen kann
 

Michael...

Top Contributor
Ich brauche einfach eine "Methode" die in meiner Applikation per Textfeld und Funktionsname eingetragen wird und dann von meiner Software aufgerufen werden kann.
Wenn ich die Anforderung richtig verstehe, dann geht das mittels Reflexion
Ich frage mich nur ob es möglich ist eine Funktion extern zu überladen (ohne das der Benutzer Java programmieren muss)
Was meinst Du mit "überladen"? Eine bestehende Methode von "aussen" - ohne von der Klasse zu erben und die Methode darin zu überschreiben - zu überladen wird schwierig.
 

Gazelli

Mitglied
Vielleicht ist es einfach so zu beschreiben

Ich schreibe eine Software die Grundfunktionen bereitstellt. Es sollte so etwas wie ein "Plugin" möglich sein die Standard Regelfunktion zu überschreiben ( Bitte nicht im Klassensinne verstehen ) . Es sollte also die Möglichkeit bestehen gezielt eine bestehende Funktion zu ändern .

Ein Programmierer schreibt also eine Bibliothek mit der zu überschreibenden Methode. Meine Software sollte dann die möglichkeit haben die von mir geschriebene Grundroutine durch die Java Routine zu ersetzen indem die Blibliothek durch den Namen und die Funktion angegeben wird. Der Sinn ist es meine Software extern erweitern zu können ohne das der Anwender Java programmieren muss , jedoch einem Programmierer die Mglichkeit dazu gegeben wird.

In C++ würde ich das durch LoadLibrary und einen Functon Call auf den Funktionspointer machen

Vielleicht bin ich zusehr in der C Welt verhaftet habe aber eben mangels Erfahrung noch nicht die Begrifflichkeit von Java
 
G

Gastredner

Gast
Du suchst definitiv Relection. Mit Reflection kannst du dir u. a. sämtliche Methoden einer Klasse (auch die privaten) holen und diese nach diversen Parametern (Name, Parameter) durchsuchen und aufrufen. Problematisch werden könnte es erst bei der Übergabe der Parameter, da diese im entsprechenden Typ vorliegen müssen.
Fragen wir mal anders: wozu brauchst du das, was soll das werden?

Edit: Da letzteres ja bereits beantwortet wurde: du scheinst eher ein Plugin-System zu suchen. OSGi ist mittlerweile ein Quasi-Standard und ziemlich mächtig - dafür aber auch dementsprechend komplex. Das "Verstecken" von OSGi vor dem Benutzer liegt allerdings in deinem Aufgabenbereich. Machst du es richtig (siehe z. B. Eclipse), sollte es für Nutzer kein Problem sein, zusätzliche Funktionen über Plugins hinzufügen zu können, ohne über Programmierkenntnisse zu verfügen.
Ansonsten könntest du ein - sehr einfaches - Plugin-System auch selbst schreiben. Wir hatten dazu schon mehrere Threads. Prinzipiell stellst du einfach ein entsprechendes Interface bereit, welches Clients erweitern. Geladen werden die Plugins in aller Regel dann mit einem eigenen ClassLoader bzw. einem URLClassLoader.
 
Zuletzt bearbeitet von einem Moderator:

Gazelli

Mitglied
Danke für den Begriff den ich noch nicht kannte

Hintergrund ist ein Android Projekt das über ein externes Board per USB Sensoren und Aktoren anfragen und beeinflussen kann. Sollte jemanden die Standardfunktion nicht so wollen wie ich es entwickelt habe möchte ich den Sourcecode eben dieser Funktion offen legen um den externen Programmierern zwar die Gurndfunktion meiner Software zu ermöglichen die Details aber im Notfall selbst regeln zu können . Damit halte ich die Software offen .
Wer jedoch die Sofware nur "nutzen" will könnte sich dann extern Hilfe holen die gewünschte Funktion gemäß seiner Wünsche und Bedürfnisse zu ändern . In diesem Fall würde also die Regelungsfunktion"überladen".

Die Reihenfolge ist immer

Sensoren lesen , Regelung ausführen , Aktoren beeinflussen .
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A externer repaint Aufruf Java Basics - Anfänger-Themen 9
U Externer aufruf zum Fenster erstellen will nicht Java Basics - Anfänger-Themen 2
T Klassen und Objekte externer Aufruf. Java Basics - Anfänger-Themen 8
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Erste Schritte Stream-Aufruf vereinfachen Java Basics - Anfänger-Themen 3
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
Y Aufruf von Methode nicht möglich. Java Basics - Anfänger-Themen 2
D Aufruf von mehreren Activities bringt die app zum Absturz Java Basics - Anfänger-Themen 5
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
X Methode bei mehrfachen Aufruf kein Effekt Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
H Rekursiver Aufruf Java Basics - Anfänger-Themen 8
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
Henri Aufruf von getX() und getY() aus der Super klasse Objekt() Java Basics - Anfänger-Themen 3
E Aufruf auf Objekt mit übergebenem Wert? Java Basics - Anfänger-Themen 7
D Aufruf einer statischen Variable Java Basics - Anfänger-Themen 1
D Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 39
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
M Speichern von Objekten - Verfügbarkeit bei erneutem Aufruf Java Basics - Anfänger-Themen 3
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
J Klassen Reihenfolge beim Aufruf von Klassen Java Basics - Anfänger-Themen 1
V Problem Aufruf einer Methode in einer Methode Java Basics - Anfänger-Themen 1
O Frage zum Aufruf überladener Methoden Java Basics - Anfänger-Themen 4
G funktions Aufruf aus GUI Java Basics - Anfänger-Themen 9
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
W Zeitversetzter Aufruf der Methoden Java Basics - Anfänger-Themen 6
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
H Aufruf einer Instanzmethode funktionert nicht. Java Basics - Anfänger-Themen 6
A Konstruktor Aufruf Java Basics - Anfänger-Themen 4
Pentalon Ein Aufruf den ich nicht verstehe Java Basics - Anfänger-Themen 11
D dynamischer Aufruf Java Basics - Anfänger-Themen 2
N Aufruf der Methode Java Basics - Anfänger-Themen 16
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
P URL für Lokalen Aufruf Java Basics - Anfänger-Themen 5
C OOP Aufruf von Methoden höherer Sichtbarkeit Java Basics - Anfänger-Themen 10
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
S Überladener Konstruktor und aufruf aus eigener Klasse Java Basics - Anfänger-Themen 2
A Aufruf von Konstruktor aus Basisklasse Java Basics - Anfänger-Themen 7
O OOP super aufruf 2 objekte? Java Basics - Anfänger-Themen 3
D Array Methoden Aufruf. Java Basics - Anfänger-Themen 14
L Klassen Aufruf einer ueberschreibbaren Methode im Konstruktor Java Basics - Anfänger-Themen 4
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
Q Aufruf einer Klasse in einem Package Java Basics - Anfänger-Themen 7
C Aufruf funktioniert nicht Java Basics - Anfänger-Themen 10
T Aufruf einer Methoden aus einer Util-Klasse mit privatem Konstruktor Java Basics - Anfänger-Themen 7
C Exception beim Aufruf einer Methode Java Basics - Anfänger-Themen 2
A Aufruf einer Methode Java Basics - Anfänger-Themen 3
J Aufruf von Funktionen in *.jar mittels Eclipse Java Basics - Anfänger-Themen 4
T Shell Script Aufruf mit Java Java Basics - Anfänger-Themen 7
R Aufruf statische Methode Java Basics - Anfänger-Themen 7
M Aufruf zum Objekt erstellen aus String Java Basics - Anfänger-Themen 5
K OOP Nachteil bei direktem Aufruf von run() auf Thread-Objekten Java Basics - Anfänger-Themen 2
J Aufruf der Methode Java Basics - Anfänger-Themen 6
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
E Konstruktor-Aufruf Java Basics - Anfänger-Themen 9
C Aufruf einer Funktion Java Basics - Anfänger-Themen 3
W Multiplikation mit rekursivem Aufruf Java Basics - Anfänger-Themen 17
C exec Aufruf mit Leerzeilen im Pfad Java Basics - Anfänger-Themen 3
L Methoden aufruf Java Basics - Anfänger-Themen 3
M methoden aufruf klappt nicht Java Basics - Anfänger-Themen 6
M Frage zum Aufruf eines Applets aus einer HTML - Datei Java Basics - Anfänger-Themen 3
N Methoden aufruf Java Basics - Anfänger-Themen 7
K Methoden aufruf von einer anderen Klasse Java Basics - Anfänger-Themen 7
S super() aufruf ausgabe Java Basics - Anfänger-Themen 3
L Mehrere Objekte einer Klasse aber nur einmal Konstruktor aufruf? Java Basics - Anfänger-Themen 2
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
F Aufruf von Methoden hintereinander gechachtelt??? Java Basics - Anfänger-Themen 8
E Mehrfache print ausgabe ohne Schleife oder Rekursiven aufruf? Java Basics - Anfänger-Themen 48
radiac CMD Windowskonsole und java aufruf in Vista 64 Java Basics - Anfänger-Themen 2
D Aufruf von WGET aus Java Java Basics - Anfänger-Themen 5
F Variabler Aufruf einer Methode Java Basics - Anfänger-Themen 10
F Methoden Aufruf Java Basics - Anfänger-Themen 4
L abgeleitete Klasse - Aufruf mit vererbter Klasse? Java Basics - Anfänger-Themen 2
T aufruf methode in methode macht probleme Java Basics - Anfänger-Themen 9
P seltsamer konsolen aufruf Java Basics - Anfänger-Themen 8
E Frage zum Objekt aufruf Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben