如何在 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" 动作中。
要求: 在 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" 动作中。