【问题标题】:How to apply a patch如何应用补丁
【发布时间】:2010-12-07 14:06:32
【问题描述】:

我有这个补丁代码,它是从一篇网络文章(从 Java 调用 Matlab)下载的。 http://www.cs.virginia.edu/~whitehouse/matlab/JavaMatlab.html

但我不知道如何在我的 windowsXp 运行的计算机上应用它。 我想做的是从 java 调用 Matlab 脚本文件。我已经找到了必要的源代码和所有东西,但这个母校一直拖后腿。 非常感谢任何帮助。谢谢。

这是补丁代码。

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());

【问题讨论】:

    标签: java matlab windows-xp patch


    【解决方案1】:

    通过 Tortoise SVN,我们可以按照以下方式应用补丁。点击 Apply patch 并浏览补丁文件。

    Tortoise SVN

    【讨论】:

      【解决方案2】:

      如果您使用像 Eclipse 这样的开发工具,您可以轻松地应用它,因为它是上下文菜单中的一个选项(右键单击),转到 Team -> Apply Patch。它应该工作。

      【讨论】:

        【解决方案3】:

        JMI (Java-to-Matlab Interface) 的 Matlab 类及其 fevalConsoleOutput 方法在此解释:http://UndocumentedMatlab.com/blog/jmi-java-to-matlab-interface/

        【讨论】:

          【解决方案4】:

          这个补丁很小,你可以很容易地用手涂抹。

          所以只需打开文件 MatlabControl.java 并更改第 214 行(以 - 开头的那一行)以适应以 + 开头的行。

          之后您的代码应如下所示:

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

          【讨论】:

            【解决方案5】:

            我会下载标准的 UNIX patch 工具并使用:

            patch -p0 <my_patch.diff
            

            【讨论】:

            • 你可能想解释一下patch应该在包含MatlabControl.java的目录中运行的OP。
            • 所以我要做的就是将代码复制到一个名为“my_patch.diff”的文件中,并将其保存在 MatlabControl.java 文件所在的文件夹中,然后在控制台中运行上面的命令,对吧?
            • 是的,cd C:\directory\which\contains\MatlabControl.java,然后是patch -p0 &lt; my_patch.diff。确保patch 在您的$PATH 中或指定其绝对路径。
            【解决方案6】:

            您需要将该补丁应用到文件MatlabControl.java。在 Unix 上,您可以使用标准的 patch 程序来执行此操作,但在 Windows 上通常不存在该程序。

            但是查看补丁文件,它非常小,您可以轻松地手动进行更改。查看补丁文件:必须删除左栏中带有- 的行。必须添加带有+ 的行。

            所以你必须查看MatlabControl.java 并删除这一行:

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

            并添加这些行:

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

            换句话说,这是一个非常小而简单的更改,您只需删除对fevalConsoleOutput()的方法调用的最后两个参数。

            如果您想在 Windows 上使用 patch 命令(以及许多其他 Unix 实用程序),您可以下载并安装 Cygwin

            【讨论】:

              猜你喜欢
              • 2011-07-08
              • 2017-06-07
              • 1970-01-01
              • 2021-11-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-11-27
              • 1970-01-01
              相关资源
              最近更新 更多