如何在NetBeans中的Java代码中执行exe
文件?
我编写了一个用Java运行exe文件的代码,
Process process = Runtime.getRuntime().exec( "cmd.exe /C start C:/Users/123/Desktop/nlp.exe" );
此代码运行文件。
这个文件有一些部分,我可以点击它并运行它的不同部分。 是否有可能我可以使用代码访问这些部分并在Java中运行而不是单击它?
编辑代码:
Process process = Runtime.getRuntime().exec( "cmd.exe /C start C:/Users/123/Desktop/nlp.exe" );
Robot bot = new Robot();
bot.mouseMove(100, 100);
bot.mousePress(InputEvent.BUTTON1_MASK);
bot.mouseRelease(InputEvent.BUTTON1_MASK);
答案 0 :(得分:1)
您可以向系统发送单击信号并在屏幕上指定其位置。查看this question
答案 1 :(得分:0)
使用java.awt.Robot
为外部程序生成系统鼠标单击。
Java没有内置的方法来获取外部窗口的坐标,但可以使用JNA完成。看到这个答案:
修改强>
你的评论和编辑正在改变这个问题,这使得回答几乎毫无意义。根据您对问题的最后编辑,如果我理解正确,您现在正在询问是否可能以某种方式使用Java触发外部应用程序中的事件,而不会触发鼠标单击。在这种情况下,我认为答案是针对个别计划的。
如果可以通过按键触发事件,那么可能是使用java.awt.Robot
的另一个非鼠标选项。
如果程序生成/响应Windows消息(在windows api级别),您可以通过JNA和windows api SendMessage
发送相同的消息。但是,这可能会变得复杂,并且需要您熟悉Windows API以及查找和处理这些消息的技术。
答案 2 :(得分:0)
您可以链接这样的命令
在这个例子中,我使用" c:"然后" dir"然后" ipconfig"。 " cho结束"
要在终点保持终端开放:
Runtime.getRuntime().exec("cmd /c start cmd.exe /K \"c: && dir && ipconfig\"");
要在结尾自动关闭它:
Runtime.getRuntime().exec("cmd /c start cmd.exe /c \"c: && dir && ipconfig\"");
修改强>
在您的情况下将是:
Runtime.getRuntime().exec("cmd /c start cmd.exe /K \"C:/Users/123/Desktop/nlp.exe && whatever_other_commands_you_want\"");