【发布时间】:2012-08-23 02:49:39
【问题描述】:
所以我有一个运行类似以下内容的程序
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
然后从我的 main 我调用
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 中,尽管试图删除它们,但我无法删除它们。
注意 该程序是通过 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 时,文件最终会出现在不应该出现的地方。如何让我的程序处理这个问题?
【问题讨论】:
-
那么,问题是文件是在一个意想不到的地方创建的,还是程序退出时没有被删除?
标签: java linux cron cross-compiling