2017-08-29 36 views
3

のJavaアプリケーションを実行しようとしましたです。 "-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-noverifyになる " - ディゴール"のような回避策を作ると、あなたのコードが動作するはずです。

+0

ありがとうございました!変数に文字列を入れて分割するという回避策を講じました。 – SiGe

+0

答えに感謝します。 –

+0

私は単体テストを実行しようとしていましたが、 "java.lang.VerifyError:分岐ターゲット19でスタックマップフレームが必要です"というエラーが出るたびに、バイトコードが続きました。 JUnit Debug ConfigurationのVM引数に-noverifyを追加すると、単体テストが実行されました。答えをありがとう! – Janet

関連する問題