2017-08-29 1 views
3

Ich versuche, meine JAVA-Anwendung mit JVM Argumente in Eclipse zu starten. Ich bemerkte, dass ein "-noverify" String jedes Mal am Ende der Parameter angehängt wird, die sie unbrauchbar machen, weil ich das als Patch für meine Konfigurationsdateien benötige. (Und das Programm sagen: "/home/user/config.properties-noverify" ist existiert nicht.)Warum -noverify am Ende der JVM Argumente hinzugefügt

Die Argumente sind:

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

ich unter Ubuntu entwickeln. Mit Eclipse Version 4.8.

Ich googelte viel, aber ich habe keine Antworten gefunden.

Kann mir jemand erklären, was das ist und wie kann ich es richtig benutzen?

Antwort

4

Die JVM überprüft den Bytecode der Kompilierklassen, die geladen werden sollen, um zu sehen, dass sie sich gut verhält. Dies ist ein wichtiger Schritt für die Ausführung von nicht vertrauenswürdigem Code.

Leider braucht es Zeit und für eine sehr große Anwendung wie Eclipse kann dies die Startzeit erheblich verlängern. Das Flag "-noverify" schaltet dies aus.

Es klingt, dass Sie ein Leerzeichen nach Ihrer eigenen Zeichenfolge benötigen, damit das Flag "-overover" nicht verkettet wird. Wenn Sie dies nicht tun können, dann machen Sie eine Arbeit wie "-Dignore", die -Dignore-noverify wird und dann sollte Ihr Code funktionieren.

+0

Vielen Dank! Ich habe einen Workaround mit der Zeichenfolge in eine Variable, dann teilen Sie es. – SiGe

+0

danke für die Antwort. –

+0

Ich habe versucht, einen Komponententest auszuführen, jedes Mal, wenn es mit "java.lang.VerifyError: Einen Stackmap-Frame bei Verzweigungsziel 19 erwartet" fehlgeschlagen ist, gefolgt von einer Menge Byte-Code. Nachdem ich in VM-Argumenten meiner JUnit Debug-Konfiguration die Option -noveryf hinzugefügt hatte, wurde der Komponententest ausgeführt. Danke für die Antwort! – Janet

Verwandte Themen