IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Java et Dll d'une autre application


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 93
    Points : 71
    Points
    71
    Par défaut Java et Dll d'une autre application
    Bonjour,

    Je souhaiterai savoir s'il est possible d'appeler une fonction d'une dll d'une autre application en Java.
    La base de données n'étant pas accessible autrement que par le biais de cette Dll, je dispose d'un code VB qui permet cet appel d'une fonction d'une dll d'une autre application, et je souhaiterai le "traduire" en Java car mon application se réalisera en Java.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Declare Function NomFonction Lib "NomDll.DLL" Alias "NomFonctionDansDll" (arguments)
    Merci beaucoup, je commence un projet et je bloque sur cette partie, et je ne peux pas commencer mon projet sans mes données. Quel casse-tête !

    Merci d'avance pour votre aide, ou vos idées !

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    De quel base s'agit il ?
    Es tu sur que cette base n'est pas accessible en JDBC ?
    si oui, Pourquoi tu ne migres pas tes données sur une base accessible via JDBC ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    cependant, pour répondre à la question tu peux utiliser JNI, mais c'est compliqué à mettre en place.
    Je pense que tu devrais vraiment migrer tes données si tu ne peux pas utiliser JDBC avec cette base
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 93
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    cependant, pour répondre à la question tu peux utiliser JNI, mais c'est compliqué à mettre en place.
    Je pense que tu devrais vraiment migrer tes données si tu ne peux pas utiliser JDBC avec cette base
    Bonjour,

    Merci pour cette réponse, je suis en train d'étudier JNI même si effectivement cela semble compliqué.
    Qu'entendez vous par migrer les données si je ne peux pas utiliser JDBC ?

    Merci

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par GatH7614 Voir le message
    Qu'entendez vous par migrer les données si je ne peux pas utiliser JDBC ?
    Tous simplement, exporter les données vers une autre base de données !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    De quel base s'agit il ?
    C'est la vraie question ...
    On pourra mieux t'aider
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 93
    Points : 71
    Points
    71
    Par défaut
    Il s'agit d'une base de données PI (de OSI soft) avec des fonctions bien spécifiques, mais je n'avais pas de documentation.
    J'utilise donc JNI mon problème maintenant est le renvoi de plusieurs valeurs pour une même méthode avec JNI (j'ai créé un autre post plus spécifique).

    Merci à tous !

  8. #8
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    de toute évidence ils ont des drivers qui permet un accès sur la base PI via JDBC ce qui est beaucoup plus simple que de passer par JNI
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 93
    Points : 71
    Points
    71
    Par défaut
    Certes, le JDBC est commandé mais il y a des délais et je souhaite commencer le développement de mon application. Merci beaucoup !

  10. #10
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    aucun problème alors mais pour éviter de perdre du temps, ne passe pas par JNI.
    Je te conseillerais plutôt d'utiliser une base provisoire style une base mémoire, vue que l'intérêt de JDBC c'est d'être générique.

    Tu fais donc le début de ton développement avec la base mémoire tu auras juste à changer le driver et la chaîne de connexion et rien de plus.
    En revanche si tu passes par JNI les modifications seront plus lourde !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 93
    Points : 71
    Points
    71
    Par défaut
    Je pensais utiliser JNI et si le JDBC est livré avant la fin de ma mission, implémenter une nouvelle interface PI, ce qui me permettrait d'avoir une application "boîte noire" finalisée à la fin de ma mission même si le JDBC n'est pas arrivé.

    En parlant de JNI, as-tu une idée à mon problème (renvoi de valeur par argument d'une fonction native) ?

  12. #12
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    au risque de paraitre lourd je persiste en disant que tu perds vraiment du temps à utiliser JNI pour attaqué une base de donnée !
    pour trois raisons :
    - 1) tu prends du temps sur du code qui ne servira pas par la suite
    - 2) il y a un risque important de bug difficile à corriger dans le code natif
    - 3) tu figes le code avec PI dans l'hypothèse ou l'application pourrai utiliser une autre base de données dans le future.

    Cependant je ne peux pas t'obliger à partir dans cette direction et cela reste ton choix .

    Pour ta question sur JNI je vais la poster dans l'autre poste que tu as fait.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    tu perds vraiment du temps à utiliser JNI pour attaqué une base de donnée
    +10

    JNI n'est pas fait pour cela.
    JDBC est fait pour cela et permet en 4 lignes d'accéder à la base avec simplicité :
    ligne 1 : chargement du driver (classloader)
    ligne 2 : connexion à la base (chaîne de connexion classique)
    ligne 3 : envoi de la requête SQL
    ligne 4 : récupération des valeurs retournées par la requête

    tous les exemples sont ici
    .
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 93
    Points : 71
    Points
    71
    Par défaut
    La base de données sera toujours PI, je me doute que je vais perdre pas mal de temps avec JNI mais je dois avancer sur mon projet et je n'ai qu'une courte durée pour sa réalisation (c'est mon stage de fin d'études). JDBC est vraiment la meilleure solution, je n'ai jamais dit le contraire, mais la durée alouée au projet risque d'arriver à sa fin sans aucune réception du JDBC.
    Je vous remercie pour vos précieux conseils

  15. #15
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Ok je me suis surement mal exprimer, je vais donc reformuler !
    J'ai voulu dire que à mon avis tu va perdre plus de temps à la création de ton API native.

    Si tu utilises une base de données provisoire, tu va pouvoir développer la totalité de ton application sans te connecter à la base PI. Ensuite l'utilisateur de ton application aura juste à changer les informations relatives au driver et à l'url de connexion sans changer une ligne de code
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/09/2013, 09h11
  2. C++ et DLL d'une autre application
    Par GatH7614 dans le forum Débuter
    Réponses: 3
    Dernier message: 13/07/2010, 12h26
  3. integrer une application java ".jar" dans une autre application
    Par youssefkermel dans le forum Général Java
    Réponses: 1
    Dernier message: 19/05/2009, 15h11
  4. Réponses: 7
    Dernier message: 23/03/2005, 22h23
  5. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo