我们的一位客户正在使用一些Novel安全软件,该软件有时会锁定我们软件创建的一些.class文件。当这种情况发生时,这会对他们造成一些令人讨厌的问题,并且我正试图研究一种解决方法,我们可以添加到我们的错误处理中以解决此问题。我想知道是否有可用于检测文件是否被锁定的java api中的任何调用,如果是,则解锁它。使用java API锁定和解锁文件
4
A
回答
1
在尝试写入文件之前,您可以使用File.canWrite()检查您的Java应用程序是否可以写入该文件。但是,如果第三方应用程序将文件锁定在File.canWrite()检查与应用程序实际尝试写入之间,您仍可能遇到问题。出于这个原因,我会编写你的应用程序来简单地继续并尝试写入文件并捕获文件被锁定时引发的任何异常。我不相信有一种本地Java方式来解锁已被另一个应用程序锁定的文件。你可以将一个shell命令作为特权用户来执行,但是这看起来不够优雅。
0
File.canWrite()具有Asaph提到的竞态条件。您可以尝试FileChannel.lock()并获取文件的排他锁。只要.class位于本地磁盘上,这应该可以正常工作(文件锁定可能会在联网磁盘上出现问题)。
或者,根据发现的.class名称的方式,您可以每次为.class创建一个新名称;那么如果防病毒软件锁定了您的初始班级,您仍然可以创建新的班级。
相关问题
- 1. 在Ubuntu中使用C API锁定和解锁文件LInux
- 2. 解锁锁定的java文件Android studio
- 3. 用VBA锁定和解锁
- 4. 用PhpStorm锁定/解锁文件
- 5. 使用jQuery锁定和解锁页面?
- 6. Java文件锁定
- 7. 用于iPhone锁定和解锁的UIEvent?
- 8. 使用Java锁定属性文件
- 9. Java锁和解锁不同的线程
- 10. 关于屏幕锁定和解锁
- 11. jqGrid:如何锁定和解锁网格?
- 12. 锁定和解锁游戏关卡android
- 13. Java文件锁定和Windows - 锁不是“绝对”?
- 14. 使用disableKeyguard和reenableKeyguard来锁定和解锁
- 15. MVC锁定和解锁一个呼叫
- 16. 锁定和解锁dispatch_queue_t异步任务
- 17. 如何锁定和解锁jqGrid?
- 18. 锁定/解锁HTML5画布
- 19. 锁定/解锁方向
- 20. SQLite文件锁定和DropBox
- 21. 用于锁定和解锁的事件查看器标识
- 22. 我们什么时候使用QMutexLocker重新锁定和解锁?
- 23. 如何使用groovy锁定和解锁jenkins奴隶?
- 24. 如何使Windows文件锁定更像UNIX文件锁定?
- 25. 用Java删除锁定的文件?
- 26. 使用条件格式锁定/解锁单元格
- 27. 在编辑时实现锁定和解锁文档
- 28. 当使用Ez文件锁定器锁定文件但使用另一个文件锁定实用程序时,RmGetList()API失败
- 29. 如何解锁被.NET中的进程锁定的文件
- 30. System.IO.File.Create锁定文件
你是什么意思“锁定文件”?你的意思是软件使用.class文件,所以它们不能更改?或者你的意思是像羊群(2)? – abyx 2009-10-12 17:36:02