【问题标题】:Running Launch4J from java code?从java代码运行Launch4J?
【发布时间】:2011-09-07 18:54:08
【问题描述】:

在编译/构建期间,我使用 launch4j 将可执行 jar 包装到我的 pom.xml(maven 项目文件)文件中的 exe 中。

但是是否可以从一段 java 代码运行 launch4J 并在执行 java 应用程序时动态创建一个 exe 包装器,例如:

import some.l4j.dependencies.*;
public class L4JTest {
  public static void main(String[] args) {
       Launch4JConfig l4jConfig = new Launch4JConfig ();
       l4jConfig.setJarPath("path-to-jar-to-wrap");
       l4jConfig.setOutfile("test.exe")
       l4jConfig.setDontWrapJar(true);
        ...
       l4jConfig.create();
  }
}

欢迎任何指向示例的指针或链接!

【问题讨论】:

  • 您是否考虑过使用命令行来启动launch4J,然后使用`Runtime.getRuntime().exec(....);`从java程序中调用它
  • 是的,这将是“蛮力”的方式,但也许有一个 java 友好的 API 可以被包含/使用。

标签: java runtime launch4j


【解决方案1】:

由于您不想彻底采用Runtime.getRuntime().exec(..) 方式,因此您将不得不修补。我们已经使用了 launch4J,但我们从未有过您正在寻找的用例。我认为 launch4J 没有文档化的 Java API。

但是,您可以修改 launch4J 中使用的 Ant 任务,并在此处将其用于您的目的。 看看task's source

您会看到它利用net.sf.launch4j.Buildernet.sf.launch4j.config.Config 来“构建”EXE。

  • 祝你好运!

【讨论】:

    猜你喜欢
    • 2013-12-05
    • 2013-06-23
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2016-11-11
    • 2021-07-16
    • 1970-01-01
    • 2015-09-27
    相关资源
    最近更新 更多