Java调用外部进程 - exe

时间:2015-10-24 20:06:00

标签: java exe

我正在构建一个java应用程序,它在某些时候使用外部exe。在这一点上,我试图简单地将这个exe添加为某种类型的库,我可以在进程调用中使用它,因此用户不必安装它..

这个exe文件是一个命令行工具,它产生一些输出,由应用程序进一步处理。

所以我的问题是,如何在java应用程序中包含exe文件,而不是将其作为系统进程调用。也可以接受的是,如果这个exe例如在最终的lib文件夹中,那么java app将获取它并执行它。

我希望很清楚,谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

Java以几种方式与其他(本机)代码交互:

  • 通过Java Native Interface(JNI)
  • 对特定编码的库进行编译
  • 使用Runtime.getRuntime().exec(...)
  • 分配子进程,从而获得外部工具
  • 通过网络通讯

在第一种情况下,将JNI库与Java程序一起包含是很有用的。将它作为类资源包含在您的JAR文件中是可以想象的,但这会违反JAR文件(保存类和资源)的想法。您更有可能将库(对于所有目标平台)与某种安装包(例如InstallAnywhere或其他)捆绑在一起

在第二种情况下,将二进制文件包含在Java程序中(即在JAR文件中)是没有用的。相反,它很可能(应该有)自己的安装过程,并且您的Java代码应该使用适当的命令行(PATH)来查找可执行文件。

我认为第三种情况不相关。