【问题标题】:How to embed an external exe into another jar using java如何使用java将外部exe嵌入到另一个jar中
【发布时间】:2018-03-22 15:55:55
【问题描述】:

我正在尝试使用 java 创建一个工具,我想在其中嵌入和执行外部第三方 exe,并在我正在创建的工具中获取它的输出。

我的限制是我不能让用户在我正在运行该工具的系统上获取这个嵌入式 exe,因此它必须动态部署、执行并从中接收输出,然后在用户退出之前将其删除工具。 我的工具可以是 jar 或 exe。

有没有办法做到这一点?

【问题讨论】:

  • 不,没有办法这样做,原因有二:第一,Java 应用程序是任何用户都可以检查的档案。第二,您必须将可执行文件写入单独的文件才能执行它,并且用户将能够在您这样做时复制它。
  • Runtime 类可以启动子进程,从Runtime#exec(String) 返回的Process 对象可以创建子进程的输入/输出流。不确定如何实现文件存在的“隐蔽性”,这只是......不合理,除非它部署在单独的系统上,然后数据通过例如隧道传输。一个插座。

标签: java external executable


【解决方案1】:

JAR 是通常的压缩文件,你可以在里面放任何东西。包括exe文件。您可以像这样通过 Java 执行命令行命令:

Running Command Line in Java

所以理论上你可以从你的 JAR 中提取 exe 并通过命令行执行它,读取命令行输出并在此基础上继续。关于保证用户不会只是自己手动提取 EXE - 没有办法以可靠的方式执行此操作。因此,如果您打算包装一些其他程序并使用包装器限制它的功能,那么这不是这样做的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-14
    • 2013-05-25
    • 2023-03-14
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    相关资源
    最近更新 更多