如何在Java程序中运行exe文件

时间:2014-07-09 12:31:25

标签: java exe

如何在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);

3 个答案:

答案 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\"");