11

jstlタグとStruts1タグを使用するレガシーWebアプリがあります。Java 5/6でJSPファイルをプリコンパイルすると、jstlタグとStruts1タグが「未チェックまたは安全でない操作」に関する警告をスローします。たとえば、次のタグを使用すると、次のようになります。

<%@ page import="/anotherpage.inc" %>

次の警告がスローされます。

[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.

-Xlint:uncheckedを使用して再コンパイルすると、問題のあるJSPタグライブラリの内部動作に関する詳細が表示されます。未チェックの操作警告をすべて抑制したい。-Xlint:-uncheckedを使用すると警告が抑制されると思いましたが、そうではありませんでした。

JSPページをコンパイルするときにこれらの警告を抑制するにはどうすればよいですか?JSPタグライブラリを再コーディングしたり、1,000のJSPページを更新したりすることは実用的ではありません。未チェックの警告を除くすべての警告を表示できるように、警告をグローバルに無効にするコンパイラフラグを探しています。ありがとう!

4

3 に答える 3

1

これらのメッセージは (JDK >= 1.5 では必須) 注意であり、警告ではありません。

compiler.note.unchecked.plural=\
    Some input files use unchecked or unsafe operations.

デフォルトのコンパイラの動作は と同じ-Xlint:-uncheckedです。

-Xlint:unchecked警告をオンにすると、各インスタンスが報告されます。

compiler.warn.unchecked.assign=\
    [unchecked] unchecked assignment: {0} to {1}
...

必須のメモは個別に無効にすることはできません。それらはすべて で無効になり-Xlint:noneます。残念ながら、残りの警告も無効になっています。

他の応答を確認して代替手段を見つけることもできますが、コンパイラの出力メッセージをフィルタリングするのが最も簡単な解決策のようです。

于 2011-04-26T10:21:04.857 に答える
0

この警告を無効にする最善の方法は、JSPでのJavaコードの使用を停止することです。代わりにJSTLまたはJSFの使用に慣れ始めてください(必要に応じてカスタムタグライブラリを使用)。

しかし、レガシーアプリケーションでは、それを実行できない可能性が高く、警告に耐える必要があります。もちろん、コンパイラに-nowarnフラグを追加することもできますが、これにより、これだけでなく、すべての警告が無効になります。これは、必要以上の警告になる可能性があります。

于 2011-02-17T08:03:45.293 に答える
0

あなたは正しい

-Xlint:unchecked

あなたが望むことの反対を行いますが、使用することもできます

-Xlint:-unchecked

そこに余分な「-」があることに注意してください。

これにより、タグ ライブラリによって生成されたものだけでなく、チェックされていない操作に関するすべての警告が無効になりますが、他の警告は引き続き表示されます。

于 2011-02-08T16:45:04.807 に答える