我正在构建一个java应用程序,它在某些时候使用外部exe。在这一点上,我试图简单地将这个exe添加为某种类型的库,我可以在进程调用中使用它,因此用户不必安装它..
这个exe文件是一个命令行工具,它产生一些输出,由应用程序进一步处理。
所以我的问题是,如何在java应用程序中包含exe文件,而不是将其作为系统进程调用。也可以接受的是,如果这个exe例如在最终的lib文件夹中,那么java app将获取它并执行它。
我希望很清楚,谢谢你的帮助。
答案 0 :(得分:1)
Java以几种方式与其他(本机)代码交互:
Runtime.getRuntime().exec(...)
在第一种情况下,将JNI库与Java程序一起包含是很有用的。将它作为类资源包含在您的JAR文件中是可以想象的,但这会违反JAR文件(保存类和资源)的想法。您更有可能将库(对于所有目标平台)与某种安装包(例如InstallAnywhere或其他)捆绑在一起
在第二种情况下,将二进制文件包含在Java程序中(即在JAR文件中)是没有用的。相反,它很可能(应该有)自己的安装过程,并且您的Java代码应该使用适当的命令行(PATH)来查找可执行文件。
我认为第三种情况不相关。