【问题标题】:Start Cygwin process from Java从 Java 启动 Cygwin 进程
【发布时间】:2012-04-12 00:53:45
【问题描述】:

我需要在 Windows 环境中使用 GNU Octave。 Octave 进程将使用 ProcessBuilder 或 Apache Commons Exec 从 Java 服务器调用。

Octave 需要使用 Cygwin 运行。调用 Octave 的正确方法是什么?

如果我尝试直接从 Windows(不使用 Java)调用 octave

cygstart octave-3.6.1.exe

我得到一个 dll 丢失的错误 (cygblas-0.dll)。如果我从 cygwin shell (mintty.exe) 开始八度,它可以工作。所以一个可能的问题是,是否可以通过提供所需的 dll 在 cygwin shell 之外调用 octave?

【问题讨论】:

  • 看起来你的 shell 从一些启动脚本中获取了值。你可以打电话 bash -l -c /bin/ls
  • @Jayan 我已经弄明白了,谢谢!
  • 是否有必要使用-i(交互式)选项。如果有具体原因,请将其包含在您的答案中..

标签: java cygwin octave


【解决方案1】:

DLL 是否在您的 PATH 环境变量中?例如,我的 PATH 包含 c:\cygwin\bin,我可以毫无问题地执行 cygwin 'ls' 命令。

【讨论】:

    【解决方案2】:
    new ProcessBuilder("c:/cygwin/bin/bash",
            "-l", // login
            "-i", // interactive
            "-c",
            "\"octave --help --interactive --no-line-editing\"");
    

    有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      相关资源
      最近更新 更多