[英]Passing an object property to bash script using java
目前,我正在尝试使用Swing的文件选择器创建一个桌面应用程序,该应用程序将使用cygwin将一种特定类型的文件转换为另一种文件。 相关的代码部分是:
String[] cmd = new String[]{"C:\\cygwin64\\bin\\mintty.exe", "/cygdrive/c/Users/orhun.vatansever/workspace/extchangegui/src/extchangegui/dene.sh"};
Process pr = Runtime.getRuntime().exec(cmd);
这很好,但是由于我的bashscript的内容就像
cd "${0%/*}"
java -jar xyz.jar aegis.xyz
这意味着我的代码适用于一个特定的xyz文件,我要做的是选择该文件,然后在该特定的xyz文件上运行命令。 我可以使用myfile.getName()获取文件名,但是我不知道如何使用此数据,以及将其放在流程生成器中的位置。 我认为有两种解决方案,一种是将流程生成器参数之一(不知道是哪一种)设置为“ java -jar xyz.jar“ + file.getName()””,另一种是单击后更改脚本的内容文件选择器的打开按钮(我认为这没有意义)。
您可以将名称字符串添加到命令数组,并在脚本中将其作为位置参数引用。 说cmd[2] = "xyz"
,
java -jar ${2}.jar aegis.${2}
那不是我想要的...我想...通过
file.getName()
属性获取其名称,然后以某种方式将其传递给脚本,或像java -jar xyz.jar + chosenFile.getName()
一样运行它
然后在命令字符串中传递文件名, cmd[2] = file.getName()
,
java -jar xyz.jar ${2}
您还应该考虑使用ProcessBuilder
创建您的Process
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.