目前我正在尝试使用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()&#34 ;" ,其他是在点击文件选择器的打开按钮时更改脚本的内容(我认为这没有意义)。
答案 0 :(得分:0)
您可以将名称字符串添加到命令数组中,并在脚本中将其引用为positional parameter。说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
。