Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

jhsdbでバージョンチェックを無効にする

このブログで以下のエントリを投稿していました。

www.sakatakoichi.com

この中で、

サーバーで指定したJDKのバージョンと、WindowsでGUIを起動したJDKのバージョンが異なると、上記の警告が出ます。

という、リモート・デバッグ・サーバーとクライアントのバージョンが異なる場合の警告について書いています。

ただ、このバージョンチェックを無効にするオプションもあります。システムプロパティでsun.jvm.hotspot.runtime.VM.disableVersionCheckを指定すれば、無効にできます。

# Linux/MacOS
$ export JAVA_TOOL_OPTIONS="-Dsun.jvm.hotspot.runtime.VM.disableVersionCheck"
# Windows
>set JAVA_TOOL_OPTIONS="-Dsun.jvm.hotspot.runtime.VM.disableVersionCheck"

>jhsdb hsdb
Picked up JAVA_TOOL_OPTIONS: "-Dsun.jvm.hotspot.runtime.VM.disableVersionCheck"
WARNING: You have disabled SA and VM version check. You may be using incompatible version of SA and you may see unexpected results.

ただ、上記警告メッセージにあるように、VMのバージョンが異なると正常に、正確に情報が見えないことがあるはずです。ケースバイケースで利用しましょう。

とくにドキュメントは見つけられなかったのですが、ソースコードにありました。

// sun.jvm.hotspot.runtime.VM.java
private static void checkVMVersion(String vmRelease) {                                            |
    if (System.getProperty("sun.jvm.hotspot.runtime.VM.disableVersionCheck") == null) {
...