Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何启动JCOPShell(jcshell.bat),它是来自定制Java桌面应用程序的NXP产品_Java_Swing_Shell_Batch File_Javacard - Fatal编程技术网

如何启动JCOPShell(jcshell.bat),它是来自定制Java桌面应用程序的NXP产品

如何启动JCOPShell(jcshell.bat),它是来自定制Java桌面应用程序的NXP产品,java,swing,shell,batch-file,javacard,Java,Swing,Shell,Batch File,Javacard,我正在尝试创建一个用java创建的桌面应用程序,该应用程序将在内部运行NXP中的jcshell工具,该工具用于与计算机中的secure element SD卡交互并生成输出。在jcshell中,我将运行脚本文件。因此,这个桌面应用程序也应该在内部启动jcshell并运行脚本文件 我已经执行了JCOP shell命令,该命令将通过JCOPNXP提供的JCOP shell工具jcshell.bat与安全元素SD卡通信。现在我需要创建一个windows桌面应用程序,通过它我应该能够通过jcshell.

我正在尝试创建一个用java创建的桌面应用程序,该应用程序将在内部运行NXP中的jcshell工具,该工具用于与计算机中的secure element SD卡交互并生成输出。在jcshell中,我将运行脚本文件。因此,这个桌面应用程序也应该在内部启动jcshell并运行脚本文件

我已经执行了JCOP shell命令,该命令将通过JCOPNXP提供的JCOP shell工具jcshell.bat与安全元素SD卡通信。现在我需要创建一个windows桌面应用程序,通过它我应该能够通过jcshell.bat运行jcopshell命令

Process processObj = Runtime.getRuntime().exec("cmd /C dir");
上面的代码将从命令提示符以及我的自定义java桌面应用程序返回相同的输出,其中包含目录的详细信息。 我正在寻找类似的东西,但无法从我的JavaDesktopApplication运行jcshell.bat

如果您在上述方面有任何帮助,我们将不胜感激

我也曾尝试以以下方式使用ProcessBuilder,但未能获得预期的输出。在以下arraylist中,第一个元素是批处理文件的路径,第二个元素是脚本文件的位置。我的目的是通过windows应用程序jcshell.bat运行脚本文件,我使用JCOP提供的工具运行该应用程序。下面是使用ProcessBuilder的代码


答案就在这里。。[StutoPosiv]感谢所有提供的支持……/P>也考虑Studio Bu建器,如图所示。@ TrasHooe:你能看看上面我使用PultBuudioD的代码吗?我已将命令添加到arraylist。Arraylist的第一个元素具有到jcshell的路径。第二个元素具有执行脚本文件的命令。现在,在运行commandlist时,只执行commandlist中的第一个元素,而不执行第二个元素,这正是我需要程序执行的内容。请编辑您的问题,以包含一个显示当前方法的元素。也许有JCOP经验的人可以给你一些建议,我认为你不能像那样对命令排序;我想你必须运行一个,检查输出,运行另一个,检查输出,等等+1更新。我终于得到了答案。。。。这个链接很好地解释了这一点
ArrayList commandList = new ArrayList<String>();
commandList.add("C:\\Program Files\\NXP Semiconductors\\JCShell\\jcshell.bat");
commandList.add("./scripts/javatest.jcsh");‌​‌​
ProcessBuilder pb = new ProcessBuilder(commandList);
pb.redirectErrorStream(true);
Process p = pb.start();
String s;
BufferedReader stdout = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = stdout.readLine()) != null && !isCancelled()) {
    publish(s);
    System.out.println("OUTPUT == " + s);
}
if (!isCancelled()) {
    status = p.waitFor();
}
p.getInputStream().close();
p.getOutputStream().close();
p.destroy();