在cygwin中调用JAVA程序

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本博客采用 WPCMD 维护;
  • 本文标题:在cygwin中调用JAVA程序
  • 本文链接:http://zengrong.net/post/1610.htm

在cygwin中调用JAVA程序

只要安装了JDK或者JRE,就可以在cygwin中直接使用JAVA命令。但最大的问题,是在于windows下的JAVA需要Windows格式的路径,而cygwin默认提供给JAVA的路径,JAVA是无法识别的。

例如有一个JAVA程序encrypt.jar,正确的方式应该这样调用:

java -Dsource=源文件路径 -Dtarget=目标文件路径 -jar encrypt.jar

但如果直接在cygwin下这样调用,就会报错:

java -Dsource=~/source.txt -Dtarget=~/target.txt -jar encrypt.jar
#Exception in thread "main" java.io.FileNotFoundException: \home\zrong\source.txt (系统找不到指定的路径。)

所以,我们需要借助cygpath命令,将cygwin格式的路径转换成Windows格式。

$ cygpath -w ~/source.txt
#D:\cygwin\home\zrong\source.txt

这样调用就没问题了

java -Dsource=`cygpath -w ~/source.txt` -Dtarget=`cygpath -w ~/target.txt` -jar encrypt.jar

cygpath的参数不少,可以使用 cygpath --help 查看