如何将参数从Java应用程序传递给Cygwin命令?

时间:2011-08-02 14:30:21

标签: java cygwin

目前我正在做一个项目,我需要将参数从Java应用程序(基本上是Java Swing)传递到Cygwin命令界面。我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:2)

如果查看Cygwin.bat的内容,您会看到它调用bash.exe二进制文件:

@echo off

C:
chdir C:\cygwin\bin

bash --login -i

命令二进制文件通常具有help参数。在这种情况下,bash肯定会:

bash --help
GNU bash, version 3.2.49(23)-release-(i686-pc-cygwin)
Usage:  bash [GNU long option] [option] ...
        bash [GNU long option] [option] script-file ...
GNU long options:
        --debug
        --debugger
        --dump-po-strings
        --dump-strings
        --help
        --init-file
        --login
        --noediting
        --noprofile
        --norc
        --posix
        --protected
        --rcfile
        --restricted
        --verbose
        --version
        --wordexp
Shell options:
        -irsD or -c command or -O shopt_option          (invocation only)
        -abefhkmnptuvxBCHP or -o option
Type `bash -c "help set"' for more information about shell options.
Type `bash -c help' for more information about shell builtin commands.
Use the `bashbug' command to report bugs.

现在我们知道它需要什么选项,您的Java应用程序可以直接调用bash:

String commandString = "help";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("C:\\cygwin\\bin\\bash -c " + commandString);

请记住将commandString替换为Swing组件中的值。