我写了一个java应用程序。它依赖于 Nmap、Wireshark 和其他命令行工具,它们通过 Windows 上的 DOS 提示符调用。
如果我想为应用程序制作安装程序,如何确保 Nmap 和 Wireshark 已安装在用户的计算机上,并且 Windows“路径”环境变量已使用它们的安装目录进行更新,这样当我调用来自我的应用程序的 DOS 提示,命令执行正确吗?
您可以使用ProcessBuilder类来检查应用程序是否已经存在。只需通过命令行运行查询,例如:
ftype | find "Wireshark"
并检查返回的字符串,它要么有wireshark二进制文件的路径,要么有错误消息。一旦它在那里,你可以从这个 abs 路径调用 wireshark 命令。
如果没有,那么您可以将它们打包为打包在您的 jar 文件中的便携式工具。您可以在运行时解压缩此文件,并通过流程构建器调用此工具并运行与wire-shark 相关的任务。nmap也是如此。
我希望这能让你知道如何去做。