AppletTalk.com Forum Index AppletTalk.com
Java discussions newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

API-Programmierung mit Java?

 
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language (German)
View previous topic :: View next topic  
Author Message
Lars Uffmann
Guest





PostPosted: Thu May 10, 2007 6:17 pm    Post subject: API-Programmierung mit Java? Reply with quote



Hallo miteinander!

Ich habe mich in der letzten Woche zum ersten Mal mit Java
beschaeftigt (eclipse als Entwicklungsumgebung), drum verzeiht mir,
wenn ich etwas vermeintlich offensichtliches uebersehe :)

Folgendes Problem: Ich moechte die API einer NASA-Software (TReK,
Telescience Resource Kit) aus einer Java-Anwendung heraus ansteuern.
Die TReK-Software bietet eine API (soweit ich das ueberblicken kann in
3 dlls) und Anweisungen, wie diese in Visual C oder Visual Basic
einzubinden ist. Allerdings habe ich bisher nur marginal API-
Programmierung (in VB, IIRC) betrieben (sprich mal irgendwo eine
Beispiel-API-Einbindung uebernommen und modifiziert) und keine Ahnung,
wie man prinzipiell in Java eine API ansteuert, und ob das ueberhaupt
moeglich ist:

Bisher dachte ich immer, eine API sei eine allgemeine -
programmiersprachenUNABHAENGIGE - Schnittstelle zur Kommunikation mit
einer Software. Ein Kollege meinte jetzt, wenn die API fuer C bzw. VB
geschrieben ist, kann ich da mit Java nichts reissen!?!

Ich will keine Kleinweich-Entwicklungsumgebung fuer meine Displays
benutzen, wenn es sich irgendwie vermeiden laesst - irgendeine Idee?
Bei Rueckfragen einfach hier posten - ich weiss im Moment nicht,
welche Infos noch nuetzlich zur Beantwortung meiner Frage waeren.

Danke & Gruss,

Lars
Back to top
Thomas Söhne
Guest





PostPosted: Thu May 10, 2007 6:23 pm    Post subject: Re: API-Programmierung mit Java? Reply with quote



Hallo Lars,

Lars Uffmann schrieb:
Quote:
Folgendes Problem: Ich moechte die API einer NASA-Software (TReK,
Telescience Resource Kit) aus einer Java-Anwendung heraus ansteuern.
Die TReK-Software bietet eine API (soweit ich das ueberblicken kann in
3 dlls) und Anweisungen, wie diese in Visual C oder Visual Basic
einzubinden ist. Allerdings habe ich bisher nur marginal API-
Programmierung (in VB, IIRC) betrieben (sprich mal irgendwo eine
Beispiel-API-Einbindung uebernommen und modifiziert) und keine Ahnung,
wie man prinzipiell in Java eine API ansteuert, und ob das ueberhaupt
moeglich ist:

Ja, mit JNI kannst du das API ansprechen, bei sun.com gibt es ein Tutorial.

Quote:

Bisher dachte ich immer, eine API sei eine allgemeine -
programmiersprachenUNABHAENGIGE - Schnittstelle zur Kommunikation mit
einer Software. Ein Kollege meinte jetzt, wenn die API fuer C bzw. VB
geschrieben ist, kann ich da mit Java nichts reissen!?!

doch mit JNI geht das.

Quote:

Ich will keine Kleinweich-Entwicklungsumgebung fuer meine Displays
benutzen, wenn es sich irgendwie vermeiden laesst - irgendeine Idee?

für das Kompilieren der API-dll kannst du MINGW32 nehmen, dann kannste
auf die zitierte IDE verzichten.

Grüße,
Thomas
Back to top
Lars Uffmann
Guest





PostPosted: Thu May 10, 2007 6:38 pm    Post subject: Re: API-Programmierung mit Java? Reply with quote



Hi Thomas!

On 10 Mai, 14:23, Thomas Söhne <thomas_soe...@arcor.de> wrote:
Quote:
doch mit JNI geht das.
[...]
für das Kompilieren der API-dll kannst du MINGW32 nehmen, dann kannste
auf die zitierte IDE verzichten.

Dankeschoen, das sieht vielversprechend aus, ich lese mich grad durch
die Dokumentation durch :)

Gruss,

Lars
Back to top
Frank Mahler
Guest





PostPosted: Fri May 11, 2007 4:13 pm    Post subject: Re: API-Programmierung mit Java? Reply with quote

Quote:
für das Kompilieren der API-dll kannst du MINGW32 nehmen, dann kannste
auf die zitierte IDE verzichten.

Die DLLs die Du einbinden möchtest, sind aber schon kompiliert, nicht
war? Dann hast Du mit JNI evtl. nicht so viel Glück, weil Du erst noch
einen Wrapper bräuchtest, der die DLL-Datentypen in "Java-liebsame"
Datentypen umschießt (Fassaden-Muster).

Zum Glück gibt's sowas auch schon fertig - ich habe recht gute
Erfahrungen mit jacob gemacht:

http://danadler.com/jacob/

Gruß,
Frank
Back to top
Paul Ebermann
Guest





PostPosted: Fri May 11, 2007 4:34 pm    Post subject: Re: API-Programmierung mit Java? Reply with quote

"Lars Uffmann" skribis:

Quote:
Folgendes Problem: Ich moechte die API einer NASA-Software (TReK,
Telescience Resource Kit) aus einer Java-Anwendung heraus ansteuern.
Die TReK-Software bietet eine API (soweit ich das ueberblicken kann in
3 dlls) und Anweisungen, wie diese in Visual C oder Visual Basic
einzubinden ist. Allerdings habe ich bisher nur marginal API-
Programmierung (in VB, IIRC) betrieben (sprich mal irgendwo eine
Beispiel-API-Einbindung uebernommen und modifiziert) und keine Ahnung,
wie man prinzipiell in Java eine API ansteuert, und ob das ueberhaupt
moeglich ist:

Bisher dachte ich immer, eine API sei eine allgemeine -
programmiersprachenUNABHAENGIGE - Schnittstelle zur Kommunikation mit
einer Software.

Hmm, nicht ganz.
Ein Windows-API (in DLLs) ist von Programmiersprachen nutzbar,
die dafür ausgerichtet sind, Windows-Programme zu erzeugen,
etwa C (auf passender Umgebung), Delphi, Visual Basic etc.
Analog gibt es entsprechendes für andere Systeme.

Dann gibt es Systemunabhängige APIs für bestimmte
Programmiersprachen (oder Programmierplattformen) wie
etwa Java, PHP, ...

Schließlich gibt es noch die "Web-APIs", das sind eigentlich
Kommunikationsschnittstellen übers Netz, die für Programmaufrufe
verwendet werden können - SOAP, RMI, CORBA gehören dazu.

Quote:
Ein Kollege meinte jetzt, wenn die API fuer C bzw. VB
geschrieben ist, kann ich da mit Java nichts reissen!?!

Um mit Java DLLs (oder analoge Einrichtungen auf anderen
Systemen) nutzen zu können, müssen die Funktionsnamen in
diesen DLLs spezielle, für Java gedachte, Namen haben, und
spezielle Parameter- und Rückgabe-Typen haben. Das ist im
sogenannten "Java Native Interface" spezifiziert.

Da das normalerweise bei nicht für Java gemachten DLLs nicht
der Fall ist, ist der normale Weg, in C (oder Visual Basic
oder Delphi etc.) eine DLL zu schreiben, welche die Funktionen
der Original-DLL aufruft und selbst passende Funktionen bereit
stellt.

Es gibt auch Java-Bibliotheken, die das Schreiben dieser
Wrapper-DLL überflüssig machen, indem sie ein generisches
Aufrufen ermöglichen.

Johann Burkhard schlägt hier immer nativecall [1] vor,
mit Google habe ich eben JNIWrapper [2] gefunden.


Paul

[1] http://nativecall.sourceforge.net/
[2] http://www.teamdev.com/jniwrapper/index.jsf
--
Die Homepage von de.comp.lang.java: http://www.dclj.de
Pauls Package-Sammlung: http://purl.org/NET/ePaul/#pps
Back to top
Display posts from previous:   
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.