2

我有 java 一个可执行的 jar 文件,其中嵌入了许多其他 jar 文件。它使用simon tuffs onejar来完成此任务。当我双击它时,jar 可以正确运行,或者从命令提示符发出“java -jar myApp.jar”。jar 文件有一个 manifest.mf,其中包含:

Manifest-Version: 1.0
Main-Class: com.simontuffs.onejar.Boot
One-Jar-Expand: expand,doc

Install4j 将此 jar 文件正确复制到我的 bin 文件夹,但它创建的“myApp.exe”无法启动。我得到:

java.lang.ClassNotFoundException: com.ndi.foreCee.programs.MyApp

或者:

java.lang.ClassNotFoundException: com.simontuffs.onejar.Boot

取决于我插入 install4j 的配置 Java 调用页面“主类”的内容。我已将“类路径:”设置为“存档 bin\myApp.jar”。

谁能告诉如何使用嵌入式 jre 配置 install4j 来构建一个只发出“java -jar myApp.jar”的 exe?

4

3 回答 3

4

将“运行可执行文件或批处理文件”操作添加到“安装屏幕”并设置以下属性:

“可执行”属性:${installer:sys.javaHome}/bin/java

“参数”属性:-jar;filename.jar(在编辑器中每行一个参数)

Install4j:如何在安装结束时执行命令行 java -jar filename.jar

于 2017-09-20T11:21:29.537 回答
0

谁能告诉如何使用嵌入式 jre 配置 install4j 来构建一个只发出“java -jar myApp.jar”的 exe?

install4j 生成的启动器根本不执行java,它使用 JNI 来创建 JVM。

您可以使用参数从命令行启动可执行文件,/create-i4j-log以获取显示传递给 JVM 的参数的日志文件。

于 2017-02-16T09:12:50.360 回答
0

我通过更新我的 ant 构建并删除 simon tuffs one-jar 并将其替换为:解决了我的问题,如使用 Ant 在新的 jar-file 构建中包含外部 jar-files 中所述 。之后,Install4J 启动器像宣传的那样工作(和 M2E67 描述的一样)。

于 2017-10-20T14:04:06.070 回答