【发布时间】:2012-03-04 16:08:27
【问题描述】:
我想在 Windows 下将几个文件扩展名“链接”到我的 java 应用程序。当用户双击带有“链接”扩展名的文件时,我想打开我的应用程序,我需要知道启动应用程序的文件路径。
【问题讨论】:
我想在 Windows 下将几个文件扩展名“链接”到我的 java 应用程序。当用户双击带有“链接”扩展名的文件时,我想打开我的应用程序,我需要知道启动应用程序的文件路径。
【问题讨论】:
如果您部署应用程序。使用Java Web Start,可以在启动文件中声明对文件类型的兴趣。请参阅demo. of the file services,其中..
..提示用户关联内容类型为
text/sleepytime的文件扩展名.zzz(只是一种不太可能与现有文件关联冲突的文件类型)。 ..
当用户双击.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
然后事情应该会解决。当然,这需要一些试验,并且您必须非常确定如何从命令行启动您的应用程序。
祝你好运!
【讨论】: