だから私は次のようなものを実行するプログラムを持っています
public class SHandler extends Handler {
File lmpFile;
プログラムの後半で:
lmpFile = new File("Stuff.zip"); // This should create a file called "stuff.zip" in the present directory
OutputStream fos = new FileOutputStream(lmpFile); // Fill the file with whatever
次に、メインから呼び出します
S.SHandler SpecialSH = new S.SHandler(args);
//use the object for whatever
SpecialSH.delFile();
Delfile は次のように作成され、クラス内のメソッドです。
public void delFile() {
lmpFile.deleteOnExit();
lmpXMLFile.deleteOnExit();
}
私の知る限り、このプログラムはローカル マシン (Windows 7 Enterprise) で正しく動作しますが、開発ボックスでこれを実行すると、プログラムがいたるところにプルする大量のファイルが投げられます。実行パスは /usr/data/dev/Handler であり、「stuff.zip」(およびそこから抽出されたファイル) を /etc/cron.d に配置していますが、それらを削除しようとしても削除できません。
注このプログラムは、RHEL6 を実行しているマシン上の cron ジョブによって呼び出される bash スクリプトを介して呼び出されています。これを助けることができる人は誰でも、私の不朽の愛と感謝を得るでしょう.
編集:bashスクリプトは単純です:
export JAVA_HOME=/usr/data/java/current
export PATH=$JAVA_HOME/bin:$PATH
/usr/data/java/current/bin/java -jar /usr/data/dev/Handler/Handler.jar
Tl;DR: ファイルは Windows で正常に動作しますが、RHEL6 が cron を呼び出すと、ファイルが本来あるべきでない場所に行き着いてしまいます。プログラムでこれを処理するにはどうすればよいですか?