跨多个操作系统删除文件

时间:2012-08-22 17:22:05

标签: java linux cron cross-compiling

所以我有一个运行类似于以下内容的程序

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企业版),但是在我运行它的时候,我在开发框中扔了很多文件,程序会把它拉到各处。执行路径是/ usr / data / dev / Handler,它在/etc/cron.d中放置了“stuff.zip”(以及从中提取的文件),尽管尝试删除它们但我无法做到。

注意此程序是通过bash脚本调用的,该脚本由运行RHEL6的计算机上的cron作业调用。任何能够帮助这个的人都会得到我永恒的爱和欣赏。

编辑: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时,文件最终到达不应该的位置。如何让我的程序处理这个?

2 个答案:

答案 0 :(得分:2)

看起来working directory/etc/cron.d/(可执行路径不同)。

相对路径(使用java.io.File时)相对于工作目录。如果您希望将文件放在不同的目录中,请使用绝对文件路径:/path/to/stuff.zip(注意前导斜杠)。

答案 1 :(得分:0)

也许这些文件没有关闭,当发生删除时,或者其他程序可能会使用它们?

相关问题