2009-10-17 8 views
1

J'ai ce correctif que j'ai téléchargé à partir d'un article Web (Calling Matlab de Java). Mais je ne sais pas comment l'appliquer dans mon ordinateur exécutant WindowsXp. Ce que j'essaie de faire est d'appeler le fichier de script Matlab de Java. J'ai trouvé les codes sources nécessaires et tout, mais cette matière est retenue. Toute aide est fortement appréciée. Je vous remercie.Comment appliquer un correctif

Voici le code de patch.

Index: MatlabControl.java 
=================================================================== 
RCS file: /cvsroot/tinyos/tinyos-1.x/tools/java/net/tinyos/matlab/MatlabControl.java,v 
retrieving revision 1.3 
diff -u -r1.3 MatlabControl.java 
--- MatlabControl.java 31 Mar 2004 18:43:50 -0000 1.3 
+++ MatlabControl.java 16 Aug 2004 20:36:51 -0000 
@@ -214,7 +214,8 @@ 
      matlab.evalConsoleOutput(command); 
      }else{ 
-    matlab.fevalConsoleOutput(command, args, 0, null); 
+    //  matlab.fevalConsoleOutput(command, args, 0, null); 
+    matlab.fevalConsoleOutput(command, args); 
      } 
     } catch (Exception e) { 
      System.out.println(e.toString()); 

Répondre

4

Vous devez appliquer ce correctif au fichier MatlabControl.java. Sous Unix, vous avez le programme standard patch pour ce faire, mais celui-ci n'est normalement pas présent sur Windows.

Mais en regardant le fichier patch, il est très petit et vous pouvez facilement faire le changement à la main. Regardez le fichier patch: Les lignes avec un - dans la colonne de gauche doivent être supprimées. Les lignes avec un + doivent être ajoutées.

Alors vous devez regarder dans MatlabControl.java et de supprimer cette ligne:

matlab.fevalConsoleOutput(command, args, 0, null); 

Et ajouter ces lignes:

//  matlab.fevalConsoleOutput(command, args, 0, null); 
matlab.fevalConsoleOutput(command, args); 

En d'autres termes, il est un changement très petit et simple, il vous suffit de supprimer les deux derniers arguments à l'appel de méthode à fevalConsoleOutput().

Si vous voulez la commande patch (et beaucoup d'autres utilitaires Unix) sous Windows, vous pouvez télécharger et installer Cygwin.

6

Je aurait télécharger l'outil UNIX standard patch et utilisation:

patch -p0 <my_patch.diff 
+1

Vous pouvez expliquer l'OP que 'patch' doit être exécuté dans le répertoire contenant' MatlabControl.java'. – Stephan202

+0

Donc, ce que je dois faire est de copier le code dans un fichier nommé 'my_patch.diff' et l'enregistrer dans le dossier que MatlabControl.java est le fichier et exécuter la commande ci-dessus dans la console, non? – Niroshan

+0

Oui, 'cd C: \ répertoire \ qui contient \ MatlabControl.java', puis' patch -p0 Stephan202

1

Ce patch est si petit, vous pouvez appliquer facilement à la main.

Il suffit donc d'ouvrir le fichier MatlabControl.java et de modifier la ligne 214 (celle précédée de -) pour l'adapter aux lignes précédées de +.

Après que votre code devrait ressembler à:

else{ 
//     matlab.fevalConsoleOutput(command, args, 0, null); 
     matlab.fevalConsoleOutput(command, args); 
    } 
2

Si vous utilisez des outils de dev comme Eclipse vous pouvez facilement l'appliquer car c'est une option dans le menu contextuel (clic droit) aller à Team -> Apply Patch. Ça devrait marcher.

0

Par Tortoise SVN, nous pouvons appliquer un patch en suivant la procédure ci-dessous. Cliquez sur Appliquer un correctif et parcourez le fichier de correctif.

Tortoise SVN

enter image description here

Questions connexes