如何在 install4j 中解析 java.lang.NoClassDefFoundError

How to resolve java.lang.NoClassDefFoundError in install4j

要求: 在 install4j 中编写一个脚本到 运行 安装时来自外部 jar 文件的方法。

实施: 为此,我们在脚本中导入了特定的 class 并调用该方法,还在 install4j 的编译器变量中添加了特定的 jar 文件作为 class 路径,因此脚本编译成功。并且 install4j 成功创建了安装程序。

问题:在 运行 时我收到 NoClassDefFoundError。

我遇到以下异常: 在行动中 "Run script"(屏幕 "Installation location"),属性 "Script": java.lang.NoClassDefFoundError: yes/xxxxxx/Version

即使我在以下系统属性中添加了 jar 文件路径:

sun.boot.library.path=C:\xxx\lib\version.jar;c:\program files\java\jre1.8.0_91\bin java.library.path=C:\xxxx\lib\version.jar;C:\Program Files\install4j5\bin..\lib;C:/xxxxT-214/lib;C:\jdk1.6.0_20\bin ;C:\xxxxxx\;C:\xxxxxx\bin;C:\xxxxxx\jre1.5.0_06\bin;C:\xxxxxx\jre1.5.0_06\bin\classic;C:\Documents and Settings\All Users.WINDOWS\Application Data\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Gemalto\Classic Client\BIN;C:\PROGRA~1\ULTRAEDT;c:\program files\install4j5\jre\bin;c:\program files\java\jre1.8。 0_91\bin java.class.path=C:\xxxxxx-214\lib\version.jar;C:\DOCUME~1\POSBuild\LOCALS~1\Temp\e4jDB.tmp_dir1490274034\i4jruntime.jar;C:\DOCUME~1\POSBuild\LOCALS~1\Temp\e4jDB.tmp_dir1490274034\user.jar;C:\DOCUME~1\POSBuild\LOCALS~1\Temp\e4jDB.tmp_dir1490274034\platform.zip;;C:\Program Files\Java\jre1.8.0_91\lib\deploy.jar;C:\程序Files\Java\jre1.8.0_91\lib\plugin.jar java.ext.dirs=C:\xxxxxx-214\lib\version.jar;c:\program files\java\jre1.8.0_91\lib\ext;C:\WINDOWS\Sun\Java\lib\ext sun.boot.class.path=C:\xxxxxx-214\lib\version.jar;c:\program files\java\jre1.8.0_91\lib\resources.jar;c:\program files\java\jre1.8.0_91\lib\rt.jar;c:\program files\java\jre1.8.0_91\lib\sunrsasign.jar;c:\program files\java\jre1.8.0_91\lib\jsse.jar;c:\program files\java\jre1.8.0_91\lib\jce.jar;c:\program files\java\jre1.8.0_91\lib\charsets.jar;c:\program files\java\jre1.8.0_91\lib\jfr.jar;c:\程序 files\java\jre1.8.0_91\classes

能否请您帮忙解决这个问题。

对于在编译时可用的 JAR 文件,您必须将其添加到安装程序->自定义代码和资源选项卡上。无需修改任何 class 路径。

对于仅在 运行 时间可用的 JAR 文件,您可以调用

context.addToClassPath(new File("path to jar file"));

在 "Run script" 动作中。