有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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来杀死它的?我可以做些什么来修复这个问题,或者结束这个过程,以便解析同一个文件

谢谢


共 (2) 个答案

  1. # 1 楼答案

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

    发回

  2. # 2 楼答案

    使用TASKKILL/imjava。exe/f然后重新启动sonarqube服务器