【问题标题】:Launch4J executable not executing as expectedLaunch4J 可执行文件未按预期执行
【发布时间】:2015-01-27 07:47:12
【问题描述】:

工具: Win 7、Launch4J 3.5、Simple Hello world Java 控制台应用(捆绑在 JAR 文件中)

大家好,

我有一个基本的 JAVA 控制台应用程序,它不需要任何输入,只是一个打开控制台窗口并显示 Hello World 文本的简单应用程序。

我构建它非常简单,因此我可以试验 Launch4J 3.5 并从 jar 文件构建一个可执行文件。

一切看起来都很好,exe 构建成功,但是当我启动它时没有任何反应,我得到了几秒钟的沙漏然后什么也没有。我检查了任务管理器,没有任何进程卡在那里。

在 Launch4J 中查看我的设置,我只填写了基础知识,我尝试了在 Wrapper manifest 字段中输入和不输入:

输出文件: C:\Development\SFDC\ProjectX\out\exe\ProjectX.exe

Jar: C:\Development\SFDC\ProjectX\out\artifacts\ProjectX_jar\ProjectX.jar

包装清单: C:\Launch4j\manifest\uac.exe.manifest(也尝试将此留空)

其余的都默认了。

【问题讨论】:

    标签: java exe launch4j


    【解决方案1】:

    如果启动是指双击它,则不会 - 什么都不会发生;您必须“告诉”Java 使用关联的控制台运行您的应用程序。为此,您可以创建一个新的 .bat 文件:只需打开文本编辑器并插入以下行:

    java -jar NAME.jar
    

    其中“NAME”是您的应用程序的名称。将文本文件保存为 .bat 格式,而不是 .txt,并将其放在与您的应用程序相同的目录中。您可以通过双击该文件来启动您的应用程序。

    它没有在你的任务管理器中弹出的原因可能是因为(我不知道)你的应用程序只打印了一条简单的消息而没有做更多的事情。在非控制台模式下,它只会调用您的打印(println 或任何其他控制台)方法而没有任何视觉效果,因为没有控制台可以打印消息。然而,在这两种情况下,如果您只打印某些内容而不执行“持续”的其他操作(例如侦听输入),您的程序将在到达 main 方法的末尾时终止。

    【讨论】:

      【解决方案2】:

      可能你需要在控制台模式下使用launch4j,请看这个答案:lauch4j hello world program

      【讨论】:

        【解决方案3】:

        是的。您确实需要使用控制台模式。 您还需要一些方法来保持控制台窗口打开,因为它会在程序终止的那一刻关闭控制台。如果您确实需要,请使用scan.nextLine();Thread.sleep(i)

        【讨论】:

          猜你喜欢
          • 2018-10-23
          • 2013-08-20
          • 2017-12-15
          • 2011-02-25
          • 2012-11-23
          • 2014-10-20
          • 2015-09-17
          • 2015-07-22
          • 1970-01-01
          相关资源
          最近更新 更多