相关疑难解决方法(0)

如何使用java锁定文件(如果可能)

我有一个使用FileReader打开文件的Java进程.如何防止另一个(Java)进程打开此文件,或者至少通知第二个进程该文件已被打开?如果文件是打开的(这解决了我的问题),这是否会自动使第二个进程获得异常,或者我是否必须在第一个进程中使用某种标志或参数显式打开它?

澄清:

我有一个Java应用程序,它列出了一个文件夹,并打开列表中的每个文件进行处理.它会逐个处理每个文件.每个文件的处理包括读取它并根据内容进行一些计算,大约需要2分钟.我还有另一个Java应用程序执行相同的操作,而是写入文件.我想要的是能够同时运行这些应用程序,所以场景就是这样的.ReadApp列出文件夹并找到文件A,B,C.它打开文件A并开始读取.WriteApp列出文件夹并找到文件A,B,C.它打开文件A,看到它是打开的(通过异常或任何方式)并转到文件B. ReadApp完成文件A并继续到B.它看到它是开放的,继续到C. WriteApp没有至关重要 当ReadApp读取同一文件时写入,反之亦然.它们是不同的过程.

java file-io

114
推荐指数
5
解决办法
16万
查看次数

从Java启动应用程序处于最小化状态

这是我之前提出的问题的后续问题:

开始 - 程序 - 如果 - 不已经磨合的Java

我没有得到一个很好的解决方案(因为似乎没有一个),但我有一个相关的问题:

无论如何用Java代码(Windows中的.exe,而不是Java应用程序)启动应用程序,并让它开始最小化?或者也许在开始后立即将其最小化?这将解决另一个问题的焦点问题,而已经存在的问题或多或少会自行处理.

再次澄清问题:Java客户端和.exe在Windows中运行,我真的没有能力编写任何包装器或使用JNI mojo或类似的东西.我或多或少需要一个纯Java解决方案.

再次感谢您的帮助,我非常愿意接受一个简单的答案:"这是不可能的."

java windows

5
推荐指数
1
解决办法
8365
查看次数

检查桌面应用程序是否已在运行

我正在研究基于Java的桌面应用程序.一个要求是,如果应用程序正在运行并且用户尝试再次启动应用程序,则应该执行类似于显示某些警报等操作.

我使用文件,当用户运行应用程序时,它将一些文本添加到文件中并将其保存在本地系统的某个位置,当用户再次尝试运行应用程序时,我检查文件并相应地处理情况,但是存在一些问题与此相反,如果应用程序异常终止,我无法删除该文件,在这种情况下,当用户尝试运行应用程序系统时,显示应用程序已在运行但实际应用程序异常终止的警报.

我做了一些研发,发现我可以阅读Windows任务管理器列表然后我可以检查我的应用程序是否正在运行.它工作正常但在测试期间我遇到了一个问题,即在Windows中有一个名为"tasklist"的软件/实用工具转到"开始 - >运行"并输入任务列表它将显示任务列表.如果您的系统上未安装此实用程序或由于某种原因删除/损坏此实用程序,则此操作无效,并且用户可以多次启动该应用程序的同样问题.这是访问taskmanager项的代码

Process p = Runtime.getRuntime().exec(
                System.getenv("windir") + "/system32/" + "tasklist.exe");

BufferedReader input = new BufferedReader(new InputStreamReader(
                p.getInputStream()));
while ((line = input.readLine()) != null) {
/*
Make the comparison here and show alert.
*/
Run Code Online (Sandbox Code Playgroud)

}

问题:检查应用程序是否已在运行的好方法是什么?我正在使用Java进行应用程序,并使用高级安装程序来创建应用程序的安装程序.

java singleton desktop-application

3
推荐指数
1
解决办法
5241
查看次数

标签 统计

java ×3

desktop-application ×1

file-io ×1

singleton ×1

windows ×1