java进程无法访问该文件,因为其他进程正在使用该文件
我有一个用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”。 重新启动。exe杀死了java进程,也杀死了cmd进程(我杀死了命令进程,因为我不知道为什么它总是说“…进程无法访问另一个进程使用的文件。”
如果我不使用windows日志记录,它就可以正常工作“>;>;”在我的争论之后
只是当我尝试记录控制台时,它没有重新启动。我在控制台中进行了大量调试,windows命令提示符只能记住这么多。所以我用了“>;>;”登录到文件并稍后读取。我不想通过java记录文件,因为如果我使用的是windows计算机,我不需要这样做
因此,我的问题是,如何仍然使用“>;>;”记录控制台在我的争论之后,它还会重新启动吗?它一直在说这个进程正在被使用,但我想我是通过杀死java和cmd来杀死它的?我可以做些什么来修复这个问题,或者结束这个过程,以便解析同一个文件
谢谢
# 1 楼答案
我建议安装Process Explorer,当您收到错误消息时,使用“Find Handle”功能并查看哪个进程持有该文件的句柄
发回
# 2 楼答案
使用TASKKILL/imjava。exe/f然后重新启动sonarqube服务器