This question already has answers here:
How to execute cmd commands via Java
                                
                                    (9个答案)
                                
                        
                                3年前关闭。
            
                    
我正在尝试创建一个桌面应用程序(用Java创建),该应用程序将在内部运行jcshell(来自NXP的工具,该工具用于与计算机中的安全元素SD卡进行交互)并产生输出。在jcshell中,我将运行脚本文件。因此,此桌面应用程序还应在内部启动jcshell并运行脚本文件。

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

Process processObj = Runtime.getRuntime().exec("cmd /C dir");


上面的代码将从命令提示符以及我的自定义Java桌面应用程序(包含目录的详细信息)返回相同的输出。
 我正在寻找类似的东西,但无法从JavaDesktopApplication运行jcshell.bat。

以上任何帮助将不胜感激

我尝试过以以下方式使用ProcessBuilder,但是无法获得预期的输出。在以下arraylist中,第一个元素是我的批处理文件的路径,第二个元素是脚本文件的位置。我的意图是运行通过Windows应用程序的脚本文件是jcshell.bat,我曾经使用JCOP给定的工具运行它。以下是使用ProcessBuilder的代码。

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();

最佳答案

答案正是在这里给出的。[Stackoverflow](How to execute cmd commands via Java)谢谢大家的支持...

关于java - 如何启动JCOPShell(jcshell.bat),这是来自自定义Java桌面应用程序的NXP产品。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21138079/

10-09 13:46