2010-08-30 26 views
1

我有一个程序,我在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日志记录“>>”后我的论点。

它只是当我尝试登录控制台,它不会重新启动。我有很多调试在控制台和Windows命令提示符下只能记住这么多,所以我用“>>”登录到文件并稍后阅读它。我不想通过java登录文件,因为它是我不喜欢的东西,如果我正在使用Windows计算机,则需要做。

所以我的问题是,我仍然可以在我的参数后面使用“>>”来记录控制台,所以它仍然会重新启动?它一直在说这个过程正在使用,但我认为我通过杀死java和cmd来杀死它?我能做些什么来解决这个问题或结束这个过程,以便我可以解析相同的文件?

谢谢。

回答

2

我建议安装Process Explorer,并且当您收到该错误消息时,请使用“查找句柄”功能并查看哪个进程正在为该文件保存句柄。

发回!

+2

我试过这样做,我不知道我在做什么错,但是在它说它被另一个进程使用后,它立即终止我不知道如何跟踪它:\ – Kyle 2010-08-31 11:17:23

相关问题