确定在 MAC OS Sonoma 14.4.1 上运行的 Microsoft Word 实例的 PID,该实例是从 java 衍生出来的

问题描述 投票:0回答:1
I have an Swing App (Java 19) running on MacBook PRO, In The App The User Opens A 
Microsoft 
Word .docx file for editing, I am Opening it with 
Runtime.getRuntime().exec(CMD) 
CMD[0] = "open";
CMD[1] = "-a";
CMD[2] = "Microsoft Word";
CMD[3] = inc.getAbsoluteFilePath(fileName);
Process p = Runtime.getRuntime().exec(CMD);
PID = p.pid();

Microsoft Word 打开文件没有任何问题。

同时,该应用程序正在监视文件的大小和最后时间戳以及 Microsoft Word 实例是否仍在运行。 (这部分在 Windows 上效果很好,因为我能够确定文件是否被锁定,但在 Mac 上则不然)

I check the PID against the 
PS -elfT however I do not see the PID the Process p returned, I am Assuming it is the 
PID of the "open" process and not the resulting MS Word process.

任何人都可以推荐确定用户何时发布文件的最佳方法吗 这样APP就可以处理保存的文件了。

任何帮助将不胜感激。

问候

java macos
1个回答
0
投票

感谢您的建议。

结果在 Mac OS 中,程序“/usr/sbin/lsof 文件的绝对路径”提供了打开的文件的结果 使用ProcessBuilder执行“/usr/sbin/lsof文件的绝对路径” 按预期工作。

我的应用程序能够检测我的应用程序在 MS Word 中打开的文件何时确实打开。

问候

© www.soinside.com 2019 - 2024. All rights reserved.