Einbinden einer 3rd party DLL via Java Wrapper (JNI)

Status
Nicht offen für weitere Antworten.

haimat

Mitglied
Hallo zusammen,

ich habe eine Library von einem externen Anbieter, die ich gerne in mein Java-Projekt einbinden möchte. Hierfür wird zu dieser externen Bibliothek auch eine Java-Wrapper-Klasse (JNI) mitgeliefert, um auf die DLL zugreifen zu können. Soweit, sogut. Diese Wrapper-Klasse wurde natürlich ohne "package" erstellt, somit ist auch das JNI Binding der Methoden entsprechend ohne package.

Problem ist nun: Ich kann die Methoden dieser DLL-Wrapper-Klasse in meinem Java-Programm nur ansprechen, wenn die Java-Wrapper-Klasse im default-package ist (was ich natürlich nicht will).

Die Frage ist also: Wie kann man eine externe DLL und die zugehörige Java-Wrapper-Klasse einbinden, wenn diese ohne "package" erstellt wurde, ich aber natürlich schon packages im Projekt verwende? Betonung liegt in diesem Fall auf "externe DLL", weil ich die Java-Header-Datei für JNI nicht selbst neu anlegen kann, weil ich natürlich den eigentlichen C++ SourceCode der DLL nicht habe.

Vielen Dank im Voraus für Eure Hilfe!

Viele Grüße, Matthias
 

haimat

Mitglied
Lieber Wildcard,

wenn du meine ursprüngliche Post gelesen hast, dann ist dir sicher aufgefallen, dass ich sehr wohl geschrieben habe, das "default package" nicht verwenden zu wollen. Hier geht es aber wie gesagt um eine externe Bibliothek, darauf habe ich keinen Einfluss, da ich natürlich keinen Zugriff auf die originären Quelldateien der DLL habe.

Wenn du also keinen konstruktiven Vorschlag hast, dann lass es bitte, denn solche Aussagen wie deine helfen leider gar nicht :(

In diesem Sinne...
Viele Grüße, Matthias
 

Wildcard

Top Contributor
Das war auch nicht an dich gerichtet, sondern eine allgemeine Aussage. Wenn die Klassen im Default Package liegen und du darauf keinen Einfluss hast, hast du Pech. Ärgerlich, ist aber so.
 

Ebenius

Top Contributor
Natürlich kannst Du trotzdem per Reflection zugreifen. Ich würde mir eine Wrapper-Klasse (in einem Package) schreiben, die den Zugriff per Reflection auf die andere Klasse umlegt. Das ist nicht schön, aber wenn Du keine andere Möglichkeit hast, ist es eine funktionierende Lösung.

Grüße,
Ebenius
 

haimat

Mitglied
Hallo Ebenius,

das hört sich gut an, danke für den Hinweis. Ich weiss allerdings nicht genau, wie das in dem Fall mit der Reflection umzusetzen ist. Könntest du mir vielleicht einen Ansatz dafür sagen?

Vielen Dank und liebe Grüße, Matthias
 

Wildcard

Top Contributor
Da fällt mir aber gerade etwas ein. Wenn du für Java <1.4 Kompilierst, kannst du Klassen aus dem Default Package importieren.
 

Ebenius

Top Contributor
Na klar.

Diese Klasse liegt im default-Package:
Code:
public class Default {

  public static String foo() {
    return "foo";
  }
}

Und diese Klasse liegt im package com.ebenius:
Code:
package com.ebenius;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class DefaultPackageAccessor {

  public static void main(String[] args)
        throws SecurityException, NoSuchMethodException,
        ClassNotFoundException, IllegalArgumentException,
        IllegalAccessException, InvocationTargetException {
    final Method method =
          Class.forName("Default").getMethod("foo", new Class<?>[0]);
    final String retVal = (String) method.invoke(null);
    System.out.println(retVal);
  }
}

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Einbinden einer Library in NetBeans Allgemeine Java-Themen 3
L einbinden einer php datei Allgemeine Java-Themen 16
J Einbinden einer protected-Methode aus anderem Package Allgemeine Java-Themen 2
U Einbinden libphonenumber Allgemeine Java-Themen 3
T Externe Java Klasen zur Laufzeit einbinden Allgemeine Java-Themen 10
J Probleme beim einbinden von Zip4j library Allgemeine Java-Themen 6
E Zahlungsmöglichkeiten im Web-App einbinden Allgemeine Java-Themen 4
T StdCall DLL in Java einbinden Allgemeine Java-Themen 13
N HashMap und Methoden richtig einbinden Allgemeine Java-Themen 2
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
S Eclipse TestNG: Textfeld einbinden? Allgemeine Java-Themen 1
J Generische Interfaces mehrfach einbinden Allgemeine Java-Themen 11
S Eclipse Github Projekt in eigenes Projekt einbinden und nutzen Allgemeine Java-Themen 13
T iText mit eclipse richtig in Java-Projekt einbinden Allgemeine Java-Themen 2
Pataraca Vererbung Code einbinden Allgemeine Java-Themen 3
MaxG. Bilddateien richtig einbinden Allgemeine Java-Themen 9
J Historische Börsendaten einbinden Allgemeine Java-Themen 14
H API einbinden Allgemeine Java-Themen 5
A Applet in HTML einbinden Allgemeine Java-Themen 1
N Eclipse Projekt von GitHub in bestehendes Projekt einbinden Allgemeine Java-Themen 13
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
S Eclipse Annotation Processor in Eclipse einbinden Allgemeine Java-Themen 0
T Eclipse Dll einbinden java.lang.UnsatisfiedLinkError nur in Eclipse nicht via javac Allgemeine Java-Themen 1
D VBScript in .jar einbinden und aufrufen Allgemeine Java-Themen 5
M Datenbankdatei in Java einbinden Allgemeine Java-Themen 16
T C DLL einbinden und Pointer übergeben Allgemeine Java-Themen 13
C images einbinden Allgemeine Java-Themen 7
T Dll erstellen und einbinden Allgemeine Java-Themen 1
S Externe Eclipse Projekte dynamisch einbinden Allgemeine Java-Themen 3
Thallius Externe .jar dynamisch einbinden Allgemeine Java-Themen 5
X 3d Modelle einbinden Allgemeine Java-Themen 1
Developer_X OpenStreetMap in Java Programm einbinden Allgemeine Java-Themen 10
M Eclipse libgcrypt für window in java Projekt einbinden Allgemeine Java-Themen 1
K Website in Programm einbinden und auslesen Allgemeine Java-Themen 2
M File IO Klasse ... wie einbinden Allgemeine Java-Themen 6
P Sprache ändern ins Programm einbinden Allgemeine Java-Themen 6
L Classpath Klasse einbinden Allgemeine Java-Themen 8
A NodeJs/Javascript txt.Datei einbinden Allgemeine Java-Themen 2
M Barcode und Bilder in PCL einbinden Allgemeine Java-Themen 0
M Variablen Variablen in Text einbinden Allgemeine Java-Themen 5
J rxtxserial.dll für 32 oder 64bit dynamisch einbinden Allgemeine Java-Themen 9
M Javaprogrammierung in Webapp einbinden Allgemeine Java-Themen 7
U Eclipse Java Projekt - Webservice einbinden Allgemeine Java-Themen 7
M Text datei in java jar datei einbinden Allgemeine Java-Themen 4
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
J excel einbinden Allgemeine Java-Themen 2
S Android: SQLite Framework einbinden Allgemeine Java-Themen 2
G JNotfiy-DLL einbinden Allgemeine Java-Themen 4
R Batch / Shell-Skript in Jar.Datei einbinden? Allgemeine Java-Themen 5
S OOP Problembereichsmodell: Bestehende Framework Klasse in eigene Klassenstruktur einbinden Allgemeine Java-Themen 9
B Input/Output Einbinden von Daten in Java Allgemeine Java-Themen 3
L Einbinden von Daten in ausführbare Jar Allgemeine Java-Themen 6
E Assembler einbinden Allgemeine Java-Themen 3
X Applet läuft nicht, Applet in Webseite einbinden Allgemeine Java-Themen 4
P Applet java 1.7 in Website einbinden ? Allgemeine Java-Themen 7
P Applet Applet einbinden Probleme Allgemeine Java-Themen 2
T Bild in jar Paket einbinden Allgemeine Java-Themen 9
P Icon aus Exe einbinden Allgemeine Java-Themen 12
E mplayer in Java einbinden Allgemeine Java-Themen 17
A Klasse in GUI einbinden Allgemeine Java-Themen 18
S Javadoc 3d einbinden macht probleme Allgemeine Java-Themen 10
H -Xmx1024m in JAR einbinden Allgemeine Java-Themen 16
T Java in Website einbinden klappt i-wie nicht Allgemeine Java-Themen 13
U (Land-)Karten in Java Anwendung einbinden (GoogleMaps/OpenStreetMap) Allgemeine Java-Themen 7
M .jar in HTML einbinden Allgemeine Java-Themen 5
S Jar Graphiken einbinden mit Eclipse Allgemeine Java-Themen 9
S RXTX library in Jar einbinden Allgemeine Java-Themen 5
T DLL in Java einbinden (Quelltext aus Excel VBA) Allgemeine Java-Themen 5
S Dll einbinden Allgemeine Java-Themen 5
S C Sourcecode in Java einbinden Allgemeine Java-Themen 7
S ANT mysql treiber einbinden Allgemeine Java-Themen 4
X Bild aus dem Netz von URL runterladen und in GUI einbinden. Allgemeine Java-Themen 3
F OpenOffice Writer in Java einbinden Allgemeine Java-Themen 8
hdi JavaMail Lib einbinden? Allgemeine Java-Themen 5
U Servlet in Webseite einbinden Allgemeine Java-Themen 1
X dll's in jar einbinden Allgemeine Java-Themen 32
G Eclipse Wie mit Ant build.xml externe Jar´s einbinden? Allgemeine Java-Themen 5
R Font in PDF einbinden Allgemeine Java-Themen 2
M JApplet einbinden in HTML Allgemeine Java-Themen 19
C RXTX Treiber einbinden für Linux Allgemeine Java-Themen 6
M Java Web Start - Native DLL einbinden Allgemeine Java-Themen 2
H Externes Programm in JAR einbinden Allgemeine Java-Themen 11
SuperSeppel13 Dynamische Bibliotheken einbinden Allgemeine Java-Themen 16
H image in jtextarea/JLabel einbinden... Allgemeine Java-Themen 4
A Java Bridge probleme - einbinden fehlgeschlagen/php kennt "java_required" nicht Allgemeine Java-Themen 3
M .jar einbinden Allgemeine Java-Themen 4
D Jython in Applikation einbinden Allgemeine Java-Themen 3
C Fremden Code ins Programm einbinden Allgemeine Java-Themen 12
S Package in verschiedene Projekten einbinden? Allgemeine Java-Themen 3
C Programm ins Kontextmenü vom Explorer einbinden Allgemeine Java-Themen 9
Developer_X Avatar/Bild ins Profil einbinden Allgemeine Java-Themen 10
M *.dll Datei (Bibliothek) in Eclipse einbinden Allgemeine Java-Themen 9
S Javadoc einbinden Allgemeine Java-Themen 8
B Eclipse externe Dateien mit einbinden Allgemeine Java-Themen 10
F Java Print mit Applet einbinden Allgemeine Java-Themen 2
J Seltsame Exception beim Java Applet einbinden in Html Allgemeine Java-Themen 2
G Libs in jar einbinden Allgemeine Java-Themen 2
K exe Programm einbinden/ansprechen Allgemeine Java-Themen 5
K jar Datei in Paket einbinden Allgemeine Java-Themen 2
B animierte .gif's in java einbinden Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben