使用Launch4J将.java包装为.exe时出现问题,但可能是版本合规性 module-info.java

问题描述

我在尝试将Java .jar包装为.exe时遇到问题,感觉好像我已经检查了这里所有与远程相关的内容。但是我仍然无法正常工作。我发现的所有看起来相似的问题都只涉及我的问题的一部分,而且该解决方案对我不起作用(例如此Convert .jar to .exe using launch4j或此The compiler compliance specified is 1.6 but a JRE 1.8 is used等)。

问题

因此,在我的具体情况下,我需要将一个小程序包装到Windows .exe上,以供老年人使用(我不能期望他们自己运行.jar文件)。我正在尝试使所有内容都能在1.0.8上运行,因此是Java 8。 一方面,我得到的错误生成.exe不起作用,在尝试运行该错误时抛出了类错误(表明编译器合规性存在问题)。 稍后,尝试一下,我还在Eclipse中收到了编译器合规性警告,因此很可能是问题所在。

然后,我还收到有关module-info.java错误。仅删除文件内容似乎有帮助(就Eclipse警告而言),但最终结果也不起作用。 我看到您需要Java 9才能使用module-info.java。我该怎么办?我在这里找不到任何有用的答案(或者我听不懂)。

我尝试过的事情

我同时安装了JDK和JRE(环境var设置为JRE)。我尝试了一次清理并重建(就像在我找不到的问题中所建议的那样),但是它什么也没做。

我不太熟悉Java,通常使用Linux,所以Windows问题对我而言并不那么熟悉。我发现自己是一台Windows机器,可以从中编译程序(因为在Linux下使用launch4j试图获得.exe时似乎存在Java版本问题。)

编辑:如果其中一个可以帮助我解决Linux下的问题,那将是我最喜欢的一种解决方案。我目前使用Linux Mint 20,但是我也可以在可访问的计算机上安装Ubuntu。

最后,我认为我的launch4j问题实际上是我的.jar文件的先前存在的问题,源于上面概述的错误,我将在下面再次进行总结:

我已经尝试了很多年了,但是我总是得到

  1. 警告:The compiler compliance specified is 1.8 but a JRE 14 is used
  2. 错误Syntax error on token "module",interface expected

我认为我应该已经解决了合规性问题(在“属性”中的Build PathCompiler中),但是仍然无法正常工作,似乎我已经尝试了所有方法。环境变量已设置。 (我的文件夹中也没有javac.exe,以防有所不同?有人说要重新下载它,但没有帮助。此外,我已经在客户的计算机上尝试过。他们有一个javac.exe,但整个过程仍然无法正常工作,但会抛出不同的错误。)

module-info.java

内容

关于模块,这个问题("Syntax error on token "module",interface expected")的提问者只有

module NameOfMyThingy {
}

也许有些人可以帮助您-会很感激的! 谢谢!

解决方法

我建议您查看 jpackage,而不是使用 launch4j,它在 JDK 14 和 15 中可用。请参阅 Packaging Tool User's Guide。请注意,对于 Windows,您还需要下载 WiX toolset