该进程无法访问该文件,因为该文件正由另一个进程使用

时间:2010-08-30 08:09:47

标签: java windows process batch-file

我有一个用C制作的程序,它会在运行2小时后重启我的Java应用程序。

首先,我使用批处理文件

运行我的java程序
@echo off
java -server -Xmx1024m -Xbootclasspath/p:"bin;" website.Server >>C:\web_logs\console.log

它工作得很好,但在2小时后,我使用Runtime.getRuntime();在Java中进行干净的准备重启;执行我的C程序“Restarter.exe”。 Restart.exe杀死了java进程并杀死了cmd进程(我杀死了命令进程,因为我不知道为什么它一直说“...进程无法访问文件......被另一个进程使用。”

如果我不使用windows logging“>>”它就可以了。在我的论点之后。

就在我尝试登录控制台时,它不会重启。我在控制台中进行了很多调试,而windows命令提示符只能记住这么多。所以我使用了“>>”登录到文件并稍后阅读。我不想通过java记录文件,因为如果我使用的是Windows计算机,我不需要这样做。

所以我的问题是,如何使用“>>”仍然记录控制台在我的论点后,它仍然重新启动?它一直在说这个过程正在使用,但我以为我通过杀死java和cmd杀了它?我该怎么做才能解决这个问题或者结束这个过程,以便解析同一个文件?

感谢。

2 个答案:

答案 0 :(得分:2)

我建议安装Process Explorer,当您收到该错误消息时,请使用“查找句柄”功能,看看哪个进程持有该文件的句柄。

回复!

答案 1 :(得分:0)

使用 TASKKILL /IM java.exe /f 然后重新启动您的 sonarqube 服务器。