繁体   English   中英

使用Java将对象属性传递给bash脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM