Forum Programmation.java Programme Java avec du code C?

Posté par  .
Étiquettes : aucune
0
15
juil.
2005
Bonjour,
je viens de récupérer du code DOJA (du Java pour I-Mode) qui me vient du Japon (avec commentaires illisibles puisqu'en japonais), et en le compilant, j'ai vu apparaitre des erreurs comme:

C:\Java\iDK\apps\BombermanKart\src\Define_ImgID.java:121: illegal character: \35
#define IMG_TIME_NOW_A 90 //
^

Tout interloqué, je regarde un peu plus en détail le code et je trouve des #define, #ifdef, #enum, etc...

Perso, je n'ai jamais vu ça dans du code Java (mais je ne suis pas très java-compliant), je pense plutôt à une espèce de préprocessing qui gérerait ça.

Est-ce que quelqu'un a déjà recontré ce cas, ou bien, est-ce que vous connaissez un truc pour precompiler du C en Java?

Moi je suis perdu. Et pitié, ne dites pas que c'est super connu...!
  • # Euh

    Posté par  (site Web personnel) . Évalué à 3.

    beh moi perso je connais JNI, qui permet d'utiliser des fonctions ecrites en C, mais ca nécéssite d'abord de passer par javah qui va générer le fichier .h a inclure dans le code C, de compiler le fichier .c afin d'en obtenir une librairie, et c'est cette librairie que l'on va appeler depuis le code java.
    En aucun cas le code C est ecrit dans le .java itself, mais bien a coté dans une librairie .so (ou dll sous ptitmou)

    Donc pour faire simple, je ne connais pas non plus cette technique, et je pencherai en 1er abord par un code nécéssitant un compilo maison avec des directives spéciales.

    Avis aux connaisseurs...
  • # CPP

    Posté par  . Évalué à 2.

    Sous Linux il semble qu'il existe une commande cpp pour faire le pré-traitement du langage C:

    cpp (pour C PreProcessor)

    Peut-être que tu devrais essayer. Sinon j'avais jamais vu ce genre de truc, d'un autre coté je ne fais pas beaucoup de java.
    • [^] # Re: CPP

      Posté par  (site Web personnel) . Évalué à 3.

      cpp fonctionne très bien avec du Java. Il faut juste penser à utiliser l'option "-P".
      $ cat Taist.java.cpp 
      #define FOOBAR  42
      
      public class Taist
      {
              public static void main(String argv[])
              {
                      System.out.println(FOOBAR);
              }
      }
      $ cpp -P Taist.java.cpp 
      
      
      
      
      public class Taist
      {
       public static void main(String argv[])
       {
        System.out.println(42);
       }
      }
      Il y a aussi mmake qui est un générateur de Makefile pour Java qui intègre des règles pour ajouter une passe de préprocesseur avec cpp.

      pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: CPP

      Posté par  . Évalué à 1.

      Sous Linux il semble qu'il existe une commande cpp pour faire le pré-traitement du langage C:

      Le préprocesseur C de gcc s'appelle cpp, ainsi que les préprocesseurs C fournis avec d'autres systèmes UNIX.

      Linux n'est pas le monde.
  • # précompilateur

    Posté par  (site Web personnel) . Évalué à 1.

    comme l'ont dit les autres, c'est plus du précompilateur que du C.

    des outils de précompilation pour java, ca existe, mais ca n'est pas très répendu, tout simplement parce que dans la plupart des cas, ca ne sert a rien.
  • # Merci

    Posté par  . Évalué à 1.

    Merci à tout le monde pour vos réponses. Je vais essayer de faire tourner cpp. Le problème, c'est que le DOJA a son compilo à lui et qu'il aime pas vraiment les .obj, mais là, c'est à moi de jouer.

    Fred

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.