Windows文件关联与Java程序的单实例

Windows文件关联与Java程序的单实例,java,windows,netbeans,file-association,single-instance,Java,Windows,Netbeans,File Association,Single Instance,我有一个Java程序,它可以打开并使用.project文件。只要我打开程序中的文件,一切都正常。但是,我希望能够安装程序并注册(甚至可能维护)文件关联,这样当用户双击.project文件时,将发生以下两种情况之一: 如果程序未运行,程序将启动,并将文件路径(完整的名称和扩展名)传递给它,以便打开单击的文件 如果程序已经在运行,请不要打开该程序的第二个实例,而是将文件路径(包括名称和扩展名)传递给该程序,以便它可以打开它 我浏览了互联网,发现了以下内容: 和 但这些答案令人困惑。他们谈论使用外部程

我有一个Java程序,它可以打开并使用.project文件。只要我打开程序中的文件,一切都正常。但是,我希望能够安装程序并注册(甚至可能维护)文件关联,这样当用户双击.project文件时,将发生以下两种情况之一:

  • 如果程序未运行,程序将启动,并将文件路径(完整的名称和扩展名)传递给它,以便打开单击的文件
  • 如果程序已经在运行,请不要打开该程序的第二个实例,而是将文件路径(包括名称和扩展名)传递给该程序,以便它可以打开它
  • 我浏览了互联网,发现了以下内容: 和 但这些答案令人困惑。他们谈论使用外部程序(这是必要的吗?),没有正确地解释如何在其中完成文件关联,也没有在构建Netbeans(我正在使用)时谈论Ant代码,但我真的不知道如何启动Ant代码,如果我需要添加它,请在项目中添加一个新的.xml文件或其他什么

    我已经尝试在Windows关联列表中手动关联我的构建JAR文件,但它不会接受它。我猜我需要安装它和/或以某种方式转换为.exe

    在任何情况下,我想把程序分发给其他人,因此它需要自动完成


    我更愿意在多个平台上进行这项工作,但我最关心的是在Windows(Windows 10)上进行这项工作。

    文件关联是操作系统的责任,因此您不能有一个一应俱全的解决方案。您需要在外部指定关联(如源代码中所述),或者尝试通过应用程序更改操作系统属性(Windows中的注册表),但是您需要处理安全问题(安全管理器)。感谢您的回答。是的,如何通过应用程序更改这些属性?(并处理您提到的这些安全问题)对于Windows,您需要写入注册表。看看谷歌,谢谢。那么我就试试这些。文件关联是操作系统的责任,所以你不能有一个一元化的解决方案。您需要在外部指定关联(如源代码中所述),或者尝试通过应用程序更改操作系统属性(Windows中的注册表),但是您需要处理安全问题(安全管理器)。感谢您的回答。是的,如何通过应用程序更改这些属性?(并处理您提到的这些安全问题)对于Windows,您需要写入注册表。看看谷歌,谢谢。那我就试试这些。