问题描述
我在尝试将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
文件的先前存在的问题,源于上面概述的错误,我将在下面再次进行总结:
我已经尝试了很多年了,但是我总是得到
- 警告:
The compiler compliance specified is 1.8 but a JRE 14 is used
- 错误:
Syntax error on token "module",interface expected
我认为我应该已经解决了合规性问题(在“属性”中的Build Path
和Compiler
中),但是仍然无法正常工作,似乎我已经尝试了所有方法。环境变量已设置。 (我的文件夹中也没有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。