2012-02-26 9 views
2

Windowsを実行して、次のJavaのバージョンチェック終了コードがJava 7で変更されましたか?

java -version:1.5+

echo %ERRORLEVEL%

は、Java 5またはJava 6でそれを実行した場合、あなたはバージョンを意味し、成功を(つまり0の終了コードを取得しますが、です1.5以上)。

Java 7で実行すると、終了コード1が表示されます。これは失敗を意味します。

誰かがこの問題に遭遇し、何が起こったのか知っていますか?

+0

私が今までに見つけた唯一の解決策は、 " - ?"その結果、次のようになります。 java -version:1.5+ - ? これにより、エラーレベルの問題は解決されますが、構文が表示されます。 – Yon

+0

構文の外観の問題を解決するには、最後に "2> nul"を使用します。 – Yon

答えて

1

-version:<value>シンタックスは、特定のバージョンのJVMでランチャーに何かをさせることを要求するためのものです。私。 Javaアプリケーションを実行するか、バージョン(-?)を印刷してください。しかし、ターゲットは指定されておらず、エラーです。ランチャーは使用方法を印刷し、1を返します。パラメータなしのプレーンであるjava.exeと同じです。以前のリリースで見られた動作は、Java 7で修正されたわずかなバグに過ぎないと思います。java -version:1.5+ -versionを実行できます。これはランチャーが利用可能なVMとバージョンを確認することを要求します(これは常に正常に動作します)。 -?オプションよりも冗長ではありません。

もう1つのオプションは、何もしないメインメソッドを持つスタブクラスをいくつか作成することです。成功したチェックは完全に静かになります。 java -version:1.5+ your.stub.MainClass

関連する問題