2017-03-23 1 views
1

Exigence: Ecrivez un script dans install4j pour exécuter une méthode à partir d'un fichier jar externe au moment de l'installation. Pour cela, nous avons importé une classe spécifique dans le script et appelons cette méthode a également ajouté un fichier jar particulier dans la variable de compilation de install4j en tant que chemin de classe afin que le script soit compilé avec succès. Et install4j a créé le programme d'installation avec succès.Comment résoudre java.lang.NoClassDefFoundError dans install4j

Problème: Au moment de l'exécution, j'obtiens NoClassDefFoundError.

Je reçois une exception près: Dans l'action "Exécuter script" (écran "emplacement d'installation"), propriété "Script": java.lang.NoClassDefFoundError: oui/xxxxxx/Version

Même si je Ajout du chemin des fichiers jar dans les propriétés système suivantes:

sun.boot.library.path = C: \ xxx \ lib \ version.jar; c: \ fichiers programme \ 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 \ classique; C: \ Documents and Sett \ All Users.WINDOWS \ Données d'application \ Oracle \ Java \ javapath; C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ WINDOWS \ System32 \ Wbem; C: \ Program Files \ Gemalto \ Client classique \ BIN; C: \ PROGRA ~ 1 \ ULTRAEDT; c: \ fichiers de programme \ install4j5 \ jre \ bin; c: \ fichiers de programme \ 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: \ PROGRAMME ~ 1 \ POSBuild \ LOCALS ~ 1 \ Temp \ e4jDB.tmp_dir1490274034 \ platform.zip ;; C: \ Programmes \ 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: \ fichiers de programme \ java \ jre1.8.0_91 \ lib \ ext; C : \ WINDOWS \ Sun \ Java \ lib \ ext sun.boot.class.path = C: \ xxxxxx-214 \ lib \ version.jar; c: \ fichiers programme \ java \ jre1.8.0_91 \ lib \ resources. jar; c: \ programmes \ java \ jre1.8.0_91 \ lib \ rt.jar; c: \ programmes \ java \ jre1.8 .0_91 \ lib \ sunrsasign.jar; c: \ programmes \ java \ jre1.8.0_91 \ lib \ jsse.jar; c: \ programmes \ java \ jre1.8.0_91 \ lib \ jce.jar; c: \ fichiers de programme \ java \ jre1.8.0_91 \ lib \ charsets.jar; c: \ fichiers de programme \ java \ jre1.8.0_91 \ lib \ jfr.jar; c: \ fichiers de programme \ java \ jre1.8.0_91 \ classes

Pourriez-vous nous aider à résoudre ce problème.

Répondre

1

Pour un fichier JAR disponible au moment de la compilation, vous devez l'ajouter dans l'onglet Installer-> Code personnalisé et ressources. Il n'est pas nécessaire de modifier un chemin de classe.

Pour un fichier JAR qui est disponible uniquement au moment de l'exécution, vous pouvez appeler

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

dans une action « Exécuter le script ».

+0

Merci, mais je veux utiliser le fichier jar qui est présent sur le système sur lequel le programme d'installation est en cours d'exécution (par exemple C: /Install/Version.jar), je ne veux pas utiliser mon propre fichier jar. – Vishal

+0

S'il vous plaît voir mon edit –

+0

Merci beaucoup pour votre aide! – Vishal