Petit soucis en java / perl ...

Petit soucis en java / perl ... - Perl - Programmation

Marsh Posté le 04-02-2003 à 19:29:35    

J'utilise un  programme, MMTx, developpé par la National Library of Medecin. En gros, ca prend un texte, et ca le map avec un gros dico medical.
 
Le probleme n'est pas là.
 
Dejà, premier probleme, quand j'appele le programme directement (./MMTx fichier) , ca marche pô.
L'appel est tout con, MMTx c'est ca :

Code :
  1. #!/bin/sh
  2. java -cp /home/tetardking/mmtx/nls/mmtx/config:/home/tetardking/mmtx/nls/mmtx/classes:/home/tetardking/mmtx/nls/mmtx/lib/mmtx.jar:/home/tetardking/mmtx/nls/mmtx/lvg2001/lib/lvg2003Project.jar:/home/tetardking/mmtx/nls/mmtx/lib/dbm.jar:/home/tetardking/mmtx/nls/mmtx/lib/jdbm.jar:/home/tetardking/mmtx/nls/mmtx/lib/jakarta-oro-2.0.6.jar:/home/tetardking/mmtx/nls/mmtx/lib/mm.mysql-2.0.6.jar gov.nih.nlm.nls.mmtx.MMTx $*


 
Je suis obligé de recopier la dernière ligne pour le faire marche correctement.
Pas bien grave, mais bon ... ;)
 
Deuxième soucis, plus 'grave' : sous windows comme sous unix, le programme plante avec un superbe message d'erreur au bout de qq temps.

Code :
  1. Exception in thread "main" java.lang.OutOfMemoryError

[:daplopbot]  
 
En gros, ils ont codé ca comme des cochons ;)
Donc, je decoupe mon texte via split en petit bout, sous unix, et je veux appeler le programme via une commande perl toute bête :
 

Code :
  1. #!/bin/perl
  2. $indent='xaa';
  3. while ($indent ='xac') {
  4. system "java -cp /home/tetardking/mmtx/nls/mmtx/config:/home/tetardking/mmtx/nls/mmtx/classes:/home/tetardking/mmtx/nls/mmtx/lib/mmtx.jar:/home/tetardking/mmtx/nls/mmtx/lvg2001/lib/lvg2003Project.jar:/home/tetardking/mmtx/nls/mmtx/lib/dbm.jar:/home/tetardking/mmtx/nls/mmtx/lib/jdbm.jar:/home/tetardking/mmtx/nls/mmtx/lib/jakarta-oro-2.0.6.jar:/home/tetardking/mmtx/nls/mmtx/lib/mm.mysql-2.0.6.jar gov.nih.nlm.nls.mmtx.MMTx -c -I -e --fileName=$indent >> essais.txt ";
  5. $indent ++;
  6. }
  7. close F;

Probleme, ca marche pô.
 
J'ai le droit à ca :

Code :
  1. java.lang.ClassNotFoundException: /home/tetardking/mmtx/nls/mmtx/config:/home/tetardking/mmtx/nls/mmtx/classes:/home/tetardking/mmtx/nls/mmtx/lib/mmtx/jar:/home/tetardking/mmtx/nls/mmtx/lvg2001/lib/lvg2003Project/jar:/home/tetardking/mmtx/nls/mmtx/lib/dbm/jar:/home/tetardking/mmtx/nls/mmtx/lib/jdbm/jar:/home/tetardking/mmtx/nls/mmtx/lib/jakarta-oro-2/0/6/jar:/home/tetardking/mmtx/nls/mmtx/lib/mm/mysql-2/0/6/jar
  2.         at java.lang.Class.forName(Class.java:native)
  3.         at java.lang.Class.forName(Class.java:55)
  4. java.lang.ClassNotFoundException: /home/tetardking/mmtx/nls/mmtx/config:/home/tetardking/mmtx/nls/mmtx/classes:/home/tetardking/mmtx/nls/mmtx/lib/mmtx/jar:/home/tetardking/mmtx/nls/mmtx/lvg2001/lib/lvg2003Project/jar:/home/tetardking/mmtx/nls/mmtx/lib/dbm/jar:/home/tetardking/mmtx/nls/mmtx/lib/jdbm/jar:/home/tetardking/mmtx/nls/mmtx/lib/jakarta-oro-2/0/6/jar:/home/tetardking/mmtx/nls/mmtx/lib/mm/mysql-2/0/6/jar
  5.         at java.lang.Class.forName(Class.java:native)
  6.         at java.lang.Class.forName(Class.java:55)

Il me semble qu'il ne prend pas la ligne en entier... :/
Il ne compte pas le gov.nih.nlm.nls.mmtx.MMTx $*
 
 
 
Bon, je ne sais pas si je me suis bien fait comprendre, mais regler le premier probleme resoudrait surement le deuxième. Si qqn avait une idée, il m'oterait une grosse épine du pied :jap:


Message édité par TetardKing le 04-02-2003 à 23:36:26

---------------
Da Breizh WoRlD DoMIna7iOn T3aM * Baptiste Mary blog
Reply

Marsh Posté le 04-02-2003 à 19:29:35   

Reply

Marsh Posté le 05-02-2003 à 08:47:51    

J'avoue avoir survolé ton mail pour toute la partie Java because c'est pas mon rayon, mais pour ton bout de code Perl, il doit pas marcher des masses ou du moins ne pas faire vraiment ce que tu attends de lui. Tu as donné cet exemple :
 

Code :
  1. $indent='xaa';
  2.     while ($indent ='xac') {
  3.     ... ...
  4.     $indent ++; }


 
Dès lors que tu as initialisé $indent = la valeur "xaa", la condition de ton while n'est jamais vraie : tant que $indent = "xac", c'est pas la valeur que tu lui donnes à l'initialisation.
 
Ensuite, une incrémentation de $indent alors que ce dernier contient une chaîne, oula !  :heink:  
 
Quant à la commande système que tu exécutes via Perl, elle est sacrément longue et je me demande s'il n'y aurait pas un nombre max de caractères que Perl peut recevoir comme ligne de commande ???


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 05-02-2003 à 09:05:55    

Pour la première partie, effectivement, mais j'ai essayé plusieurs paramètres, j'ai surement recopier à un mauvais moment :jap: Comme ca, ca ne peut pas marcher en effet.
 
Pour ce qui est du deuxième probleme, ce qui me 'chagrine', c'est que l'erreur soit la même que si je lance le programme diretement. Je ne pense pas que ca soit un probleme purement java, mais plus un probleme de bash, lors de l'appel.
 
 
Merci tout de même :jap:


---------------
Da Breizh WoRlD DoMIna7iOn T3aM * Baptiste Mary blog
Reply

Marsh Posté le 05-02-2003 à 13:55:15    

Bon, reinstalle du prog, et là, ca marche ... :pt1cable:
 
 
Un grand merci à la NLM pour avoir pondu un prog de mer*** qui plante une fois sur deux.
 
:hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed