锁定文件不能使用Windows .bat文件

时间:2017-06-22 19:21:09

标签: batch-file lockfile

我正在创建一个锁定文件,以防止我的程序出现多个实例 How to implement a single instance Java application?

如果我从命令行运行我的程序它工作正常,即它启动我的程序并创建锁定文件。当我尝试再次运行我的程序时,它识别锁定文件并且不启动另一个实例,它将命令行参数传递给当前正在运行的进程。这就是我想要的。

如果我使用.bat文件,第二次运行.bat文件时,我收到此消息"进程无法访问该文件,因为它正由另一个进程使用。"该消息不是来自我的程序。该程序未按预期运行。我觉得奇怪的是,我的程序试图访问该文件但我的日志文件中没有出现任何打印语句。我有我的程序的日志文件,我从.bat文件中捕获stdout。

这是

echo "START" >> C:\Users\Joe\Documents\NetBeansProjects\MyProgram\logs\myp.log
java -jar C:\Users\Joe\Documents\NetBeansProjects\MyProgram\target\MyProgram.jar %1  >> C:\Users\Joe\Documents\NetBeansProjects\MyProgram\logs\myp.log 2>&1

echo "FINISH"  >> C:\Users\Joe\Documents\NetBeansProjects\MyProgram\logs\myp.log

2 个答案:

答案 0 :(得分:0)

Windows正在生成消息。

为什么不使用

if not exist "lockfile" myapplication

在您的批次中?

答案 1 :(得分:0)

这个问题似乎与我正在使用的锁定文件无关,而且与我在批处理文件中写入的日志文件有关。 不知道如何解决这个问题,但如果我从我的批处理文件中删除日志文件的写入一切正常。

相关问题