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

C Discussion :

Communication avec un programme java


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Par défaut Communication avec un programme java
    Bonjour !

    J'ai besoin d'un coup de main pour réaliser un petit programme.
    Mon but est de créer une petite application en C qui me permettra de "gérer" un programme java.
    Le programme C devra lancer le programme en java et lui transmettre des commandes. J'ai fait quelques recherches, je sais comment lancer le programme mais je ne trouve pas comment faire pour lui transmettre les intructions.

    A l'heure actuelle, le programme java est lancé via un .bat.
    Les commandes que je rentre dans la console ouverte par le .bat sont transmises au programme java, c'est ce mode de fonctionnement que je voudrai reproduire dans le programme C.

    Je précise: je ne peux pas modifier le programme java qui n'est pas de ma conception.


    Pour ceux qui veulent plus de détails:

    En fait, je veux créer un programme pour gérer un serveur minecraft.
    Le serveur minecraft est en fait un fichier .jar (minecraft_server.jar).
    Mon objectif en créant un programme en C est de pouvoir lancer le serveur (actuellement lancé via un .bat) et surtout de pouvoir faire une sauvegarde de la carte régulièrement, ce qui nécessite d'envoyer un "save-all" au serveur pour que la sauvegarde soit bien à jour.

    Je prends toutes les suggestions qui pourraient m'aider à avancer (y compris, si c'est possible, je prends les solutions en java)^^.

    Merci.

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Pour communiquer tu as :
    les sockets, les tubes voir même la mémoire partagée.
    Et peut être aussi les détournement de clavier/souris

    Après, ça dépend de l'utilisation que tu en feras.

    Mais dans ton cas, lancer le.jar se fait assez facilement (system("start ...."))
    Et pour les sauvegardes régulières, pourquoi ne pas laisser le programme java les faire lui-même?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Par défaut
    Hé bien justement, comme je l'ai dit le programme java n'est pas de ma conception et il ne fait pas les sauvegardes automatiques !
    C'est pour ça que j'ai besoin de lui envoyer une commande pour qu'il sauvegarde l'état actuel du serveur, pour ensuite en faire une copie en lieu sûr.

    Les sockets, les tubes, la mémoire partagée et les détournements de clavier souris, pourquoi pas, mais on fait comment ? ^^"

    J'aurai peut être dû préciser que je suis plutôt débutant ^^

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Par défaut
    Les sockets, les tubes, la mémoire partagée
    Ca va être très compliqué sans avoir la main sur le code java !!!
    les détournements de clavier souris
    Regarde du côté des hook et API d'accessibilité (pur java)
    pour la comm java <=> c++, tu as JNI.
    tout ça n'est pas évident.

    bon courage.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Ton .bat contient la commande Java complète non ? Quelque chose comme java -jar minecraft_server.jar -option1 -option2 ? Tu as essayé de faire un appel à la commande system() avec comme paramètre cette commande Java ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Par défaut
    Bktero, comme je le disais dans le premier message j'arrive à lancer le serveur, via system("blablabla"); de ce côté là ça va.

    Le problème, c'est pour envoyer le "save-all" par exemple toutes les heures pour que le serveur sauve la map dans les fichiers et ensuite faire une copie de ces fichiers pour avoir une save en cas de plantage du serveur (plus ou moins fréquent sur minecraft, et parfois la map est irrécupérable).

    Bref, il faut que je puisse envoyer un "save-all" au serveur régulièrement.

    mala92, ok je prends note, et j'irai me renseigner là dessus.
    Ca me parait quand même bizarre qu'il soit si difficile de communiquer avec un processus lancé par l'application elle même, mais visiblement c'est comme ça...

    Quoiqu'il en soit, si quelqu'un à d'autres idées à proposer, je reste à l'écoute !

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/08/2008, 14h40
  2. Souci JDBC avec Mysql, programmation JAVA
    Par Danzel dans le forum Windows
    Réponses: 8
    Dernier message: 29/12/2006, 21h46
  3. Souci JDBC avec Mysql, programmation JAVA
    Par Danzel dans le forum JDBC
    Réponses: 1
    Dernier message: 16/12/2006, 09h31
  4. JSmooth avec des programmes Java conséquents...
    Par phyll dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 28/04/2006, 10h25
  5. [votre avis m'interesse] Interface avec un programme Java
    Par LineLe dans le forum Interfaces Graphiques en Java
    Réponses: 29
    Dernier message: 11/12/2004, 11h39

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