2017-08-29 1575 views
3

我嘗試運行我的JAVA應用程序JVM參數Eclipse。 我注意到一個「-noverify」每次在參數的末尾附加字符串,這使得它們無法使用,因爲我需要它作爲我的配置文件的補丁。 (和節目說: 「/home/user/config.properties-noverify」 不存在。)爲什麼-noverify在JVM參數末尾添加

的參數是:

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

我在Ubuntu下開發。使用Eclipse版本4.8。

我谷歌搜索了很多,但我沒有找到任何答案。

有人可以解釋我這是什麼,如何以正確的方式使用它?

回答

4

JVM檢查它將要加載的編譯類的字節代碼,看它是否運行正常。這是執行不受信任代碼的重要步驟。

不幸的是,這需要時間,對於像Eclipse這樣的非常大的應用程序來說,這可能會增加啓動時間。 「-noverify」標誌將其關閉。

這聽起來像是你需要在自己的字符串後面有一個空格,所以「-noverify」標誌不是連接的。如果你不能這樣做,那麼就像「-Dignore」一樣變成-Dignore-noverify,然後你的代碼應該可以工作。

+0

謝謝!我做了一個解決方法,把字符串放在一個變量中然後分割它。 – SiGe

+0

感謝您的回答。 –

+0

我試圖運行一個單元測試,每次失敗時都會出現「java.lang.VerifyError:期望分支目標爲19的堆棧映射幀」,然後跟着一堆字節碼。一旦我在JUnit調試配置的VM參數中添加-noverify,單元測試就會運行。感謝你的回答! – Janet