- 浏览: 604049 次
- 性别:
- 来自: 北京
最新评论
-
黑色幽默_cool:
这种不负责任的文章,多看一分钟都是浪费。
为什么使用ibatis而不用spring jdbcTemplate -
leibinhui:
不错啊 非常实用
JS正则表达式详解[收藏] -
suu:
写个存储过程,爆如下错误,是不是游标里的数据太多引起的?无法执 ...
使用Spring jdbc template调用Sybase带有返回结果集的储存过程-要点 -
travellers:
有SVR6了,为什么很多还在使用SVR4呢?
什么是SVR4?我们为什么要选择SVR4? -
dotjar:
生活是多么美好阿!
老公日记
在系统开发时,有时需要在程序中把正在用到plugin文件删除,重新更新。这需要首先在java程序中停止使用这个plugin文件,然后删除,重新更新。我在开发是遇到这样的问题,在java中停止使用了plugin文件,但是在用过FileObj.delete时,返回false,在文件系统中删除plugin文件时,OS报错,说该文件正在使用中,等几秒中在删除就可以删除了。
我猜想可能是java已经不用该plugin文件了,但是OS还认为该文件还在被使用,所以报错,所以就写了个方法来强制删除改文件,不知道这样写有没有什么不妥?欢迎来拍砖!
加上超时代码吧。。。否则真的要是删到了系统文件就卡死了。
PS:gc是作什么用的?
去了是否就删不去了?
我猜想可能是java已经不用该plugin文件了,但是OS还认为该文件还在被使用,所以报错,所以就写了个方法来强制删除改文件,不知道这样写有没有什么不妥?欢迎来拍砖!
/** * try to delete given file , try 10 times * @param f * @return true if file deleted success, nor false; */ public static boolean forceDelete(File f) { boolean result = false; int tryCount = 0; while(!result && tryCount++ <10) { logger.debug("try to delete file "+ f.getName() +" cnt:"+tryCount); System.gc(); result = f.delete(); } return result; }
评论
14 楼
。。。
2008-06-14
楼上,rm -f是Linux下用的.
13 楼
lbfhappy
2008-06-14
rm -f 是什么命令?
我这里运行不出来啊
我这里运行不出来啊
12 楼
wolfbrood
2008-06-14
lz这段代码肯定有问题,如果文件被一直占用,那么你即使删除一百次也删除不了,只有调用系统强制删除命令才可以。如楼上所说的那样。
11 楼
yuther
2008-06-14
干嘛 不用jni来调用系统自带的rm -f命令?
10 楼
xql80329
2008-06-13
如果现在删除了.那么后面其他程序用到 该怎么处理呢
9 楼
zhh2115
2008-06-05
牛!我用可以啦,System.gc()很有用
8 楼
sorphi
2007-08-22
是不是应该从classloader的实现入手?看载入jar时对底层文件是否加锁了?
http://blog.taragana.com/index.php/archive/how-to-unload-java-class/
http://blog.taragana.com/index.php/archive/how-to-unload-java-class/
7 楼
抛出异常的爱
2007-08-22
Ivan Li 写道
我尝试过多次,一般情况下cnt=1时就能删除,现在cnt最大只是到5就结束了
加上超时代码吧。。。否则真的要是删到了系统文件就卡死了。
PS:gc是作什么用的?
去了是否就删不去了?
6 楼
IvanLi
2007-08-22
我尝试过多次,一般情况下cnt=1时就能删除,现在cnt最大只是到5就结束了
5 楼
coolzyt
2007-08-21
这样10次太快了吧,可能还是删不掉,建议再加一个Thread.sleep(1000)?
4 楼
jwmianzu
2007-08-21
楼主,System.gc()调用以后不适立刻就进行垃圾回收的,如果不是对跨平台要求严格看是否能用java调用系统的强行删除命令。别的办法我也不知道了
3 楼
jwfpd
2007-08-21
Ivan Li 写道
以下是commons-io里forceDelete的源码,它满足不了我上面说的需求
收下啊/** * Delete a file. If file is a directory, delete it and all sub-directories. * <p> * The difference between File.delete() and this method are: * <ul> * <li>A directory to be deleted does not have to be empty.</li> * <li>You get exceptions when a file or directory cannot be deleted. * (java.io.File methods returns a boolean)</li> * </ul> * * @param file file or directory to delete, must not be <code>null</code> * @throws NullPointerException if the directory is <code>null</code> * @throws IOException in case deletion is unsuccessful */ public static void forceDelete(File file) throws IOException { if (file.isDirectory()) { deleteDirectory(file); } else { if (!file.exists()) { throw new FileNotFoundException("File does not exist: " + file); } if (!file.delete()) { String message = "Unable to delete file: " + file; throw new IOException(message); } } }
2 楼
IvanLi
2007-08-21
以下是commons-io里forceDelete的源码,它满足不了我上面说的需求
/** * Delete a file. If file is a directory, delete it and all sub-directories. * <p> * The difference between File.delete() and this method are: * <ul> * <li>A directory to be deleted does not have to be empty.</li> * <li>You get exceptions when a file or directory cannot be deleted. * (java.io.File methods returns a boolean)</li> * </ul> * * @param file file or directory to delete, must not be <code>null</code> * @throws NullPointerException if the directory is <code>null</code> * @throws IOException in case deletion is unsuccessful */ public static void forceDelete(File file) throws IOException { if (file.isDirectory()) { deleteDirectory(file); } else { if (!file.exists()) { throw new FileNotFoundException("File does not exist: " + file); } if (!file.delete()) { String message = "Unable to delete file: " + file; throw new IOException(message); } } }
1 楼
lighter
2007-08-21
commons io里面的FileUtils类有很多的类似删除的方法,如
FileUtils.forceDelete(file)
FileUtils.forceDelete(file)
发表评论
-
use hibernate3-maven to export sql based on entity
2011-08-07 18:19 1395<plugin> <group ... -
uninstall mysql completely in my Mac X 10.6
2011-08-07 12:19 1191sudo rm /usr/local/mysql ... -
my vimrc
2011-05-14 11:02 1712copy from http://www.vi-improve ... -
使用HSQLDB来作EJB3 EntityBean到Unit Test要点
2010-01-20 17:17 2109add <property name=" ... -
user xrandr to change my desktop's resolution
2009-12-16 17:04 1680xrandr --newmode "1280x ... -
XSS的关键之列表
2009-10-11 17:20 1831//this field are used tp esc ... -
python查看方法帮助(from dive into python)
2009-09-30 11:31 2618def info(object, spanding=10, c ... -
selenium 测试ajax的关键
2009-01-20 18:26 42271: waitForCondition(contidtion, ... -
RichFaces 手记
2008-10-07 15:46 0安装,除了richfaces 下载包中的jar( " ... -
代码检查工具
2008-09-25 11:48 2558findBugs, PMD, CheckStyle find ... -
CI工具hudson
2008-09-24 17:04 3112CI工具除了hudson,还有很多,例如CruiseContr ... -
创建solaris package step by step
2008-09-24 11:27 1920原文地址:http://www.ibiblio.org/pub ... -
什么是SVR4?我们为什么要选择SVR4?
2008-09-23 14:13 4955http://www.lslnet.com/linux/f/d ... -
IPS 中的pkg command学习笔记
2008-09-22 17:18 1843pkg(1): 使用pkg(1)来创建一个镜像,安装,升级,管 ... -
On Board前的学习计划
2008-09-18 09:37 15161:在virtual box 上虚拟一个OpenSolaris ... -
YUI Grid CSS的优雅设计
2008-09-02 22:38 2813最近加入了一个GAE的项目cpedialog,该项目的前端布局 ... -
我很懒,但是懒人有懒办法
2008-08-18 17:06 1798今天要使用jackrabbit做个小东西,上apache一看, ... -
当XPath遇上NameSpace
2008-07-23 19:39 6562在jdk5.0中,已经包含了对Xpath的支持,可一通过下面的 ... -
ubuntu下安装ipmsg-飞鸽传书
2008-07-21 09:32 28791 先下载 源码 下载的是gnome2版本的源码 http ... -
sudo 执行时无密码(不安全)
2008-07-17 17:18 2211sudo visudo root ALL=(ALL) ...
相关推荐
其`FileUtils.forceDelete()`方法可以尝试强制删除文件,包括处理被占用的情况。 4. **文件锁和JNI**:如果文件被Java进程自身锁定,可以使用JNI(Java Native Interface)调用本地方法解锁,但这涉及到更复杂的...
在提供的压缩包文件中,"运行状态强制删除文件自身【模块】.e"、"例子.e"和"运行状态强制删除文件自身【模块】.ec"可能包含了实现这一功能的具体代码示例。这些文件可能使用某种编程语言(如Erlang或Emacs Lisp)...
例如,`del /f /q C:\path\to\file.txt`强制删除文件,`rd /s /q C:\path\to\directory`删除整个目录。`/f`表示强制删除,`/q`表示静默模式,不显示确认提示。 3. **安全模式启动**:如果上述方法都无效,可以重启...
文件暴力删除工具是一款专门设计用来解决普通删除方法无法移除某些正在运行或被其他程序占用的文件问题的应用软件。在日常计算机操作中,我们可能会遇到这样的情况:一个文件因为正在被某个程序使用而无法直接删除,...
在Java编程语言中,数据流通常指的是程序与外部设备(如磁盘文件)之间的数据交换过程。Java提供了强大的输入输出(I/O)系统来处理各种数据流,包括文件读写、网络通信等。Java的I/O系统主要由两大类构成:`...
把要删除的文件或者目录拖放到这个bat文件的图标上就可以删除了!
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
4. 使用强制删除:Java的`Files`类提供了`delete()`方法,可以尝试强制删除,但请注意这可能导致数据丢失。 总结,Tomcat文件上传、下载和删除涉及的主要知识点包括HTTP协议、Servlet API、文件I/O操作以及权限管理...
Java 泛型是Java SE 5.0引入的一项重要特性,极大地增强了代码的类型安全性和重用性。...如果你想要进一步了解或实践,可以参考提供的`GenericMethod.java`源代码文件,或者查阅`Java.jpg`中的相关图片。
从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出多个与Java相关的知识点,以下是对这些知识点的详细解析: ### Java文本文件 #### Java面试题集锦,经典中的经典 这部分描述提示我们,文档内容可能...
如果文件被其他进程使用,可能需要设置强制删除选项。此外,也可以使用`deleteRecursively`来递归删除目录及其所有内容。 5. **异常处理** 在进行Alluxio操作时,我们应始终处理可能出现的异常,例如`...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...
- `Files`类提供了更多选项的删除方法,如`Files.delete()`支持强制删除,即使文件被其他进程打开。 4. **临时文件**: - `java.io.tmpdir`系统属性定义了默认的临时文件路径。 - `File.createTempFile()`用于...
强制删除可能会影响系统的稳定性,特别是当删除的是系统文件时。因此,使用前应确保知道要删除的文件不是关键系统文件,或者已经做好备份。 6. **数据恢复**:一旦文件被暴力删除,数据恢复的可能性降低。因此,...
在Java编程中,有一些常见的代码方法是每个开发者都需要掌握的。这些方法不仅提高了代码的可读性和可维护性,还能有效地解决日常编程问题。以下是一些关键的Java代码方法和相关知识点: 1. **字符串操作**: - `...
KillBox的工作原理是基于进程终止和文件强制删除的技术。它能够识别出哪些进程正在占用目标文件,并给予用户权限结束这些进程,从而为删除文件扫清障碍。此外,KillBox还具备注册表清理功能,能处理那些与目标文件...
如果遇到无法删除的问题,可以尝试使用`Runtime.exec()`调用`del`命令强制删除文件。 在实际编程中,处理这些细节能够确保Java程序在Windows环境中正确地调用命令行操作。同时,为了提高代码的可维护性和可读性,...
在Java中,接口提供了一种强制实现的方式,而抽象类则可以包含已实现的方法。 集合框架是Java中处理数据集合的重要工具,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等具体实现...