我想在Windows下“链接”几个文件扩展名到我的Java应用程序。 当用户双击“链接”扩展名的文件时,我想打开我的应用程序,我需要知道文件启动应用程序的path。
如果你部署的应用程序。 使用Java Web Start ,可以在启动文件中声明对文件类型的兴趣。 看演示。 的文件服务 ,哪个..
..提示用户将内容类型
text/sleepytime
文件扩展名.zzz
(只是一种不太可能与现有文件关联冲突的文件类型)关联text/sleepytime
。 ..
当用户双击一个.zzz
文件时,它应该在应用程序中打开。 实际上,“提示”这个词并不是全部。 如果启动沙盒版本,则会提示您关联文件类型。 可信版本不提示。
要将更多的用户控制添加到流程中,请查看1.6.0_18中介绍的IntegrationService
(我还没有演示该示例)。 在与用户核对之后,您可以在启动时运行它。
这将不得不在安装过程中完成。 你打算如何让你的用户安装你的应用程序?
在这个阶段,你必须意识到你做了一件更复杂的事情。 注册文件扩展名意味着干涉注册表。 如果用户不再需要您的应用程序会发生什么? 或移动启动你的应用程序的文件?
你将不得不选择一个安装创建者。 这里有一个这样的问题: 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
然后事情应该解决。 这当然需要进行一些尝试,而且您必须确定如何从命令行启动应用程序。
祝你好运!