【问题标题】:associating a custom file extension with java app in windows在 Windows 中将自定义文件扩展名与 java 应用程序相关联
【发布时间】:2012-03-04 16:08:27
【问题描述】:

我想在 Windows 下将几个文件扩展名“链接”到我的 java 应用程序。当用户双击带有“链接”扩展名的文件时,我想打开我的应用程序,我需要知道启动应用程序的文件路径。

【问题讨论】:

    标签: java windows file


    【解决方案1】:

    如果您部署应用程序。使用Java Web Start,可以在启动文件中声明对文件类型的兴趣。请参阅demo. of the file services,其中..

    ..提示用户关联内容类型为text/sleepytime 的文件扩展名.zzz(只是一种不太可能与现有文件关联冲突的文件类型)。 ..

    当用户双击.zzz 文件时,它应该会在应用程序中打开。实际上,“提示”这个词并不是故事的全部。如果您启动沙盒版本,系统将提示您关联文件类型。信任版本不提示。

    要为流程添加更多用户控制,请查看在 1.6.0_18 中引入的IntegrationService(我还没有那个演示)。在与用户核实后,您可以在启动时运行它。

    【讨论】:

      【解决方案2】:

      这必须在安装期间完成。您打算如何让您的用户安装您的应用程序?

      你必须在这个阶段意识到你只是让事情变得更加复杂。注册文件扩展名意味着干预注册表。如果用户不再需要您的应用程序会怎样?或移动启动您的应用程序的文件?

      您必须选择安装创建者。这是一个关于这个的问题:https://stackoverflow.com/questions/3767/what-is-the-best-choice-for-building-windows-installers

      然后您必须学习安装程序创建者的语言。这就是你所要求的如何在 nsis 中完成。请记住,脚本会处理诸如“如果用户卸载我的应用程序,并且我没有在安装时更改文件关联,那么我应该在卸载时删除这些文件关联吗?”之类的问题。所以有点长。反正就是这里:http://nsis.sourceforge.net/File_Association

      也许它可以在另一个安装程序创建者中以更简单的方式完成。

      但是,在本例中,您将 nsis 的注册函数作为应用程序的启动命令,然后在 windows 文件关联的启动命令中添加 %1。所以你应该给它启动命令

      javaw -cp installpath\yourcode.jar package.name.MainClassName
      

      然后事情应该会解决。当然,这需要一些试验,并且您必须非常确定如何从命令行启动您的应用程序。

      祝你好运!

      【讨论】:

      • 非常感谢您的回答。还有一件令人困扰的事情:如何知道哪个文件确切地启动了我的应用程序?如何在 Java 中读取相关数据?
      • 哦,看起来文件是在 args 中发送到应用程序的。 args[0] 是“-open”,而 args[1] 包含启动应用程序的文件的路径。谢谢你的帮助:)
      • @dario111cro 不客气 :) 你选择了什么类型的发行版?你和 nsis 一起去吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 2015-12-07
      • 1970-01-01
      相关资源
      最近更新 更多