私はJavaプログラムを作成して、JavaでWebプロジェクトのすべてのファイルのハッシュ値を検索し、(変更された/追加された/ハッキングされた)ファイルを検索できるようにしました。このクラスdirectory.javaを実行すると、次のようなファイルのハッシュ値を見つけることができます。
\web\WEB-INF ----- checking...OK
ajax-loader.gif -hash--437179c0b495121af68bdd64f797e02b
.\web\ajax-loader.gif--437179c0b495121af68bdd64f797e02b--Fri Dec 07 11:26:35 IST 2012
display.jsp -hash--b45f8db4489e42ecf3853a0c3cfab7a8
.\web\display.jsp--b45f8db4489e42ecf3853a0c3cfab7a8--Wed Dec 05 09:22:12 IST 2012
index.jsp -hash--d76170f1f30914ecc32fa81a0d7aa728
.\web\index.jsp--d76170f1f30914ecc32fa81a0d7aa728--Tue Nov 20 18:06:59 IST 2012
jssdkouth2.html -hash--31044821b876692909fd261152d2d102
.\web\jssdkouth2.html--31044821b876692909fd261152d2d102--Mon Dec 31 12:15:55 IST 2012
like.jpg -hash--c0c82ea9bc245ed09d2dd6ed38db5bb0
.\web\like.jpg--c0c82ea9bc245ed09d2dd6ed38db5bb0--Tue Dec 04 14:33:07 IST 2012
META-INF
.\web\META-INF\context.xml ----- checking...OK
context.xml -hash--27a8469aef212e73798e265993ced40a
.\web\META-INF\context.xml--27a8469aef212e73798e265993ced40a--Tue Nov 20 18:06:56 IST 2012
newhtml1.html -hash--7b8a39efa9be4ad7de50759ce2ab25af
しかし、サーブレットから実行すると、次のようなファイルのハッシュ値が得られました
bootstrap.jar -hash--fea2494f41dd54fc0d693b01745c03d0
.\bootstrap.jar--fea2494f41dd54fc0d693b01745c03d0--Sun Nov 11 20:36:10 IST 2012
status for path=NEW
path found in db
catalina-tasks.xml -hash--3762f67ebfb0ac7e4c707a5b9f103f92
.\catalina-tasks.xml--3762f67ebfb0ac7e4c707a5b9f103f92--Thu Mar 10 15:44:44 IST 2011
status for path=NEW
path found in db
catalina.bat -hash--3fbace7fc74faf47844efb293c5d606b
.\catalina.bat--3fbace7fc74faf47844efb293c5d606b--Thu Mar 10 15:44:44 IST 2011
以下のように開始パスを通過させてみましたが、どちらも機能しませんでした
String workingDir = System.getProperty("user.dir");
String workingDir2=".";
では、Javaファイルからサーバー上のパスを見つける方法は?サーブレットからパスを渡したくありません。これを変更して、深夜に電子メールの結果としてレポートを自動的に生成するようにします。また、このプログラムを毎日深夜に実行するようにスケジュールするための最良の方法は何ですか?