2017-08-29 1 views
3

J'essaie d'exécuter mon application JAVA avec arguments JVM dans Eclipse. J'ai remarqué qu'une chaîne "-noverify" est ajoutée chaque fois à la fin des paramètres, ce qui les rend inutilisables, car j'en ai besoin comme correctif pour mes fichiers de configuration. (Et dire que le programme: "/home/user/config.properties-noverify" est existe pas.)Pourquoi -noverify ajouté à la fin des arguments JVM

Les arguments sont les suivants:

-Djava.security.egd=file:/dev/./urandom -Dspring.config.location="/home/sige/guezbin/application.properties" -DconfigPath="/home/sige/eclipse-workspace/ImgCompr/config-default.properties" 

Je développe sous Ubuntu. Avec Eclipse version 4.8.

J'ai beaucoup cherché sur Google mais je n'ai trouvé aucune réponse. Quelqu'un peut-il m'expliquer ce que c'est et comment puis-je l'utiliser correctement?

Répondre

4

La JVM vérifie le code d'octet des classes de compilation qu'il est sur le point de charger pour vérifier qu'il se comporte correctement. C'est une étape essentielle pour l'exécution de code non fiable.

Malheureusement, cela prend du temps et pour une très grande application comme Eclipse, cela peut augmenter considérablement le temps de démarrage. Le drapeau "-noverify" l'éteint.

Il semble que vous ayez besoin d'un espace après votre propre chaîne pour que le drapeau "-noverify" ne soit pas concaténé. Si vous ne pouvez pas faire cela, alors faites un travail autour de "-Dignore" qui devient -Dignore-noverify et votre code devrait fonctionner.

+0

Merci beaucoup! J'ai fait une solution de contournement avec mettre la chaîne dans une variable puis la diviser. – SiGe

+0

merci pour la réponse. –

+0

J'essayais de lancer un test unitaire, chaque fois qu'il échouait avec "java.lang.VerifyError: Attendre une image empilée à la branche cible 19" suivie d'un tas de code octet. Une fois que j'ai ajouté -noverify dans les arguments VM de ma configuration JUnit Debug, le test unitaire a été exécuté. Merci d'avoir répondu! – Janet