2

我刚刚创建了一个包含外部依赖项的 JAR 文件,这样我就只有一个 JAR 文件。我通过使用 FatJar 做到了这一点。当我这样做时,我的 Jar 工作正常,并且我能够毫无问题地运行它。然后我使用 ikvm 将我的 Jar 转换为 exe。当我尝试运行 exe 时,出现此错误:

线程“主”java.lang.IllegalArgumentException 中的异常:无法在 java.class.path 中找到 com.simontuffs.onejar.Boot:考虑使用 -Done-jar.jar.path 来指定 one-jar 文件名

所以我想到的第一件事就是检查是否有一个 Manifest 文件指定了类路径。确实有一个清单文件,这是它的内容:

Manifest-Version: 1.0 Created-By: Fat Jar/One-JAR Eclipse Plug-In
Main-Class: com.simontuffs.onejar.Boot

我假设这是正确的,因为我能够很好地运行 JAR,这也是由 FatJar 创建的。

我不确定下一步该做什么,也不确定 -Done-jar.jar.path 是什么。任何人都知道问题可能是什么?

4

1 回答 1

0

我认为问题在于 ikvmc 编译器没有看到嵌入在您正在创建的单个可执行 JAR 文件中的 JAR 文件。

您可能希望将单个可执行 JAR 文件的创建和单个 Windows exe 的创建视为单独的进程。Fat Jar 插件将毫无问题地为您创建一个可执行的 JAR。

要创建 Windows exe,您可能需要在代码上调用 ikvmc 的批处理文件或 ant 脚本,以及所有 JAR 依赖项。我认为您可以在 ikvmc 命令行上提供要转换的 JAR 文件列表,并告诉它生成单个 exe 作为其输出。这可能会给你你想要的!

于 2013-08-20T09:07:11.860 回答