biliothen (dll) linken/einbinden



  • Ich habs in einer JAR-Datei noch nie gehabt aber das dürfte **identisch mit der Art und Weise sein, wie man Bilder lädt.
    **



  • Das prob ist eingentlich klar. ich muß bibliotheken linken die NICHT(!!!) im libary path sind. alles vorgeschlagene bezieht sich ausschließlich auf das laden von bibliotheken von einem Systempfad. ich kann jetz entweder den system pfad von handsetzen (und meinen prof dann erklären was ne systemvariable bzw. ein pfad ist....) oder eine andere möglichkeit finden.
    das mit der jar ist kein schlechter ansatz, die kann man ja in den Classpath aufnehemen. allerdings hat mir bisher niemand verraten wie der syntax dafür ist.
    (für das laden dir dll's aus ner jar)

    letzte theoretische überlegung: wenn ich die bibliotheken mit in den classpath haue, müße er die doch theoretisch finden und linken. er findet ja immer hin seine klassen. warum aber findet der die bibliotheken nicht , oder muss ich da noch zusatzoptionen beim ausführen( java prog.class )angeben ? nochmal danke.

    pain

    [ Dieser Beitrag wurde am 31.01.2003 um 09:16 Uhr von pain_md editiert. ]



  • wieso willst du DLL (Microsoft) Bibliotheken nutzen – du willst doch JAVA Plattformabhängige Software schreiben .. oder versteche ich was falsch?

    o.k.

    um die DLL aus Java zu nutzen, musst du dich mit JNI auseinandersetzen, habe so was vor drei Jahren im einem Pro... gemacht – es ist gar nicht so schwer wenn man sich beschien mit C/C++ auskennt.
    WICHTIG!!! Alle MS Bibliotheken sind mit Copyright geschützt – also du kannst diese Dateien so einfach nicht mit deinem Prog. weiter geben, also selber schreiben angesagt.

    „und da sind wir wieder bei C\C++ ...“ – ich glaube jetzt verstehst du meinen Beitrag (30.01.2003)

    C/C++ Proger



  • Original erstellt von <C/C++ Proger>:
    wieso willst du DLL (Microsoft) Bibliotheken nutzen – du willst doch JAVA Plattformabhängige Software schreiben .. oder versteche ich was falsch?

    Seit wann sind DLLs reine Microsoft-Angelegenheit? Die Definition ist von denen aber sonst auch gar nix.

    **WICHTIG!!! Alle MS Bibliotheken sind mit Copyright geschützt – also du kannst diese Dateien so einfach nicht mit deinem Prog. weiter geben, also selber schreiben angesagt.

    „und da sind wir wieder bei C\C++ ...“ – ich glaube jetzt verstehst du meinen Beitrag (30.01.2003)**

    Totaler rubbish. Von MS-Bibliotheken war IMHO gar nicht die Rede. Ist C++ was von Microsoft? Hmmm wusste ich ja gar nicht, dass die einen Standard haben ... da hab' ich wohl einiges verpasst hmmmmmmmmmmmmmmm.

    Schuster bleib' bei Deinen Leisten - in dem Fall bei C++ - Danke!



  • An Cengiz,
    wieso die ganze Aufregung??? bleib doch cool

    1. hab nie gesagt das C/C++ von MS kommt – die Gesichte kenne ich, bin seit 15J. in der Branche
    2. Na klar Du kannst den Dateien Erweiterung beliebig bestimmen, kannst sogar unter LINUX\UNIX die SharedObject (*.SO) Dateien als .DLL abspeichern – aber sage mal ehrlich hast schon „.DLL“ Dateien auf anderen Plattformen gesehen außer WIN – ich nicht.

    << Von MS-Bibliotheken war IMHO gar nicht die Rede<<
    dann habe ich falsch verstanden – o.k. obwohl ich mir ziemlich sicher bin, das <pain_md> um JNI geht!

    C/C++ Proger



  • Ich rege mich nicht auf ich rücke nur deine "Fakten" ins rechte Licht 🙂

    dann habe ich falsch verstanden – o.k. obwohl ich mir ziemlich sicher bin, das <pain_md> um JNI geht!

    JNI impliziert aber nicht Microsoft DLLs - und sicher geht es um JNI wofür sonst sollte er wohl loadLibrary nutzen?

    [ Dieser Beitrag wurde am 31.01.2003 um 11:17 Uhr von CengizS editiert. ]



  • nu seid mal wieder lieb zu einander 😉 habe mich auch mit JNI beschäftigt. kann jetz auch bibliotheken laden, aber die interne verlinkung kann ich leider nicht beeinflussen, dafür müßte ich die umschreiben ( nur so es sind system dll's und nicht von Microsoft !!!)

    es gibt aber eine so banale lösung die weder auf java noch auf c++ basiert das man da eigentlich gar nicht drauf kommt.

    man schreibe sich eine batch in der folgendes steht:

    set PATH=%PATH%;DLL_DIR //DLL_DIR ist das verzeichniss mit den dll's
    java -jar prog.jar

    und siehe es läuft. das ganze funzt aber wie gesagt nur für dll's die von anderen gelinkt werden und somit irgendwie einen globalen pfad brauchen. in der batch wird automatisch der jeweilige pfad davorgesetz.
    das setzen von DLL_DIR entsprucht also z.b C:\Prog\DLL_DIR

    nur so ich finde das das in die faq sollte mit der ergänzung das man dll's die nicht weiter verlinken(!) einfach mit der option -Djava.library.path=Pfad(zb:C:\Prog\DLL_DIR). so, halten wir fest das wir irgendwie alle recht haben 😉

    @Cegniz: auch auf die gefahrhin das du mich schlägst, ich muß nochmal was mit den "normalen(also java)" jar's fragen. Mein prog befindet sich in einer jar.
    das package heist Project. hier sind die ganzen klassen drinne.
    in meinen prog verwende ich die swt.jar, sowas ähnliches wie swing. aus dieser nutze ich funktionen. unter eclipse gibt es keine probleme die zu finden, aber sobald ich das prog auf einem anderen Rechner ausführe findet er die nicht. ich hatte sie wahlweise mit bei den klassen eingebettet, oder eben eine ebene höher. hat irgendwie alles nix gebracht. ich will die aber unbedingt nur lokal, also relativ zu meinem prog definieren definieren müssen. was soll ich machen ?

    2. kleine gemeinheit. ich habe in meinem prog eine datei die in einen editor geladen werden soll. sobald ich das prog in der jar hab, läd der die datei nicht mehr. als pfad angabe habe ich einfach nur "Dateinamen", was reichen sollte, oder ?

    ich hoffe du verzweifelst nicht mit mir und kannst mir noch ein wenig helfen, is bald geschaft ;-).danke

    pain



  • An CengizS,

    <<JNI impliziert aber nicht Microsoft DLLs <<
    man kann sie aber über JNI aufrufen/ also benutzen.

    Ich kann dir versichern das man jede MS-DLL aus JAVA missbrauchen kann (auch umgekehrt aus C/C++ ist es möglich JAVA Class Methoden aufzurufen) – der Problem hast du aber dann wenn der Prog. auf einem anderen Rechner laufen soll und auf dem die fremde DLL nicht vorhanden ist – ob du die mit installieren kannst ??? – ist dir überlassen
    Bill ... wird die auf den Dach springen, wenn er das erfährt.

    C\C++ Proger



  • @C/C++Progger: Ich seh schon wir reden einander vorbei ... belassen wirs, okay?



  • hej, vergesst bitte nicht das ich hier eine frage gestellt habe...


Anmelden zum Antworten