2017-03-23 56 views
1

要求: 在install4j中編寫腳本以在安裝時從外部jar文件運行方法。如何解決install4j中的java.lang.NoClassDefFoundError

實現: 爲此,我們有進口類特定的腳本,並調用該方法還增加了特別的jar文件中install4j的編譯器變量的類路徑,以便腳本編譯成功。 install4j成功創建安裝程序。

問題:在運行時,我得到了NoClassDefFoundError。

我得到以下異常: 在行動「運行腳本」(畫面「安裝位置」),財產「腳本」: java.lang.NoClassDefFoundError:是/ XXXXXX /版本

即使我有在以下系統屬性中添加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 Sett所有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:\ Program 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:\程序文件\ java \ jre1.8.0_91 \ lib \ charsets.jar; c:\ program files \ java \ jre1.8.0_91 \ lib \ jfr.jar; c:\ program files \ java \ jre1.8.0_91 \ classes

請幫忙解決這個問題。

回答

1

對於在編譯時可用的JAR文件,您必須將其添加到安裝程序 - >自定義代碼和資源選項卡上。沒有必要修改任何類路徑。

對於一個JAR文件,該文件只適用於運行時,您可以在「運行腳本」行動呼籲

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

+0

謝謝,但我想使用運行安裝程序的系統上存在的jar文件(例如C:/Install/Version.jar),我不想使用自己的jar文件。 – Vishal

+0

請參閱我的編輯 –

+0

非常感謝您的幫助! – Vishal

相關問題