我有一个 Java 应用程序,对于 Windows,通过 installanywhere 打包,对于 OSX,通过 jarbundler 分别打包成可双击的 .exe 和 .app。
我了解通过注册表(Windows)或 plist 文件(OSX)关联文件类型,这样双击注册的文件将打开我的应用程序和文件。当我的应用程序未运行时,这工作正常。
我的问题是关于我的应用程序已经运行的场景,我希望该实例接收并处理注册文件类型的后续双击事件,即在应用程序的同一实例中打开更多文档(例如您的浏览器。)
当前的行为是操作系统启动应用程序的新实例并在那里打开文档 - 不太理想。将我的问题视为每次双击 JPG 文件时都会打开 Photoshop 的新实例。
是否有一些关于如何将其集成到 Windows 和/或 OSX 的文档?
最佳答案
- 在某个端口上打开一个
Socket
;如果失败则转到3 - 如果连接成功,则发送当前打开的文件并退出
- 在同一端口上打开
ServerSocket
并监听连接(来自程序的后续实例) - 建立连接后,接收文件名并在另一个选项卡中打开它
关于java - 正在运行的 Java 应用程序可以从操作系统接收已注册的文件类型事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641544/