在java应用程序中侦听自定义协议

时间:2011-11-03 09:29:41

标签: java protocols

我创建了一个java应用程序,我希望能够通过调用一些自定义URL来执行此应用程序中的操作(例如:myapp:// do_this)

我已经搜索了这个,我找到了一些关于在java(URLStreamHandler)中处理这些url的信息。

我唯一缺少的部分是如何告诉操作系统将“myapp://”协议重定向到我的应用程序。

越来越多的应用程序正在定义自己的协议,我想知道是否有可能用Java创建这样的东西。

由于

3 个答案:

答案 0 :(得分:1)

URLStreamHandler中的协议将在jvm中使用。典型用法类似于res:// ...用于资源。操作系统和浏览器都有自己的协议集(ftp,mailto)。

您可以使用插件扩展Firefox以处理您的协议。

但是你必须把它发送到你的应用程序,作为一个小的“网络”服务器运行。

暂时忘记URLStreamHandler。

将Jetty Web服务器嵌入到您的应用程序中,比如在端口8765上,并编写一个servlet来处理您的URL。然后您可以在浏览器中输入“http:// localhost:8765 / do_this”。应该就够了。

答案 1 :(得分:0)

要添加新协议,需要实现XPCOM组件。由于XPCOM允许编程语言相互通信,因此XPCOM组件可以用当前Mozilla中的C ++或JavaScript实现。

http://www.nexgenmedia.net/docs/protocol/将帮助您了解更多信息。

我认为这就是你想要的。

答案 2 :(得分:0)

正如其他人所说,让浏览器了解新的协议名称是特定于浏览器(和操作系统)的 - 你不能从服务器上做到这一点。

但是,Java Web Start(http://download.oracle.com/javase/tutorial/deployment/webstart/)是否符合您的要求?大多数浏览器已经设置为正确处理JWS应用程序。