如何从本地超链接调用Java程序?

时间:2015-03-27 03:33:01

标签: java html hyperlink parameters

我有一个html文件,里面有链接,我想知道是否有办法使用这些链接来调用java程序来生成另一个html文件?

这样的事情:

<Html>
<body>
Some text
<A Href=[somehow point to a java .class file to run]>My Link</A>
More text
</Body>
</Html>

我知道如何使用Java生成html,我在这里要问的是如何将参数传递给这个本地java类,以便它可以用输入生成html文件?

因此,如果调用Java程序:MyHtmlGen.java

然后该类将是MyHtmlGen.class

然后,如果我从命令行运行它,它将是这样的:

> java MyHtmlGen my_input

但我不知道如何将其转换为上面的html链接?

2 个答案:

答案 0 :(得分:2)

那是不可能的。链接<a>将针对href属性中设置的URI向服务器发出GET请求,但这并不意味着执行特定的代码。如果要在单击链接时执行代码,请使用JavaScript,但请注意JavaScript无法启动JVM实例并运行您的确切Java应用程序。

另一方面,也许您应该查看Applet或JavaFX并将Java应用程序嵌入到您的页面中。或者可能您可以向服务器提交操作,在服务器端,您可以启动JVM并执行Java代码。

答案 1 :(得分:2)

您可以使用WebStart从浏览器交互中启动Java应用程序。

标题为“&#34;从浏览器运行Java Web Start应用程序”的链接文档部分&#34;提供您可以尝试的演示。 Java应用程序的链接提供为:

<a href="/some/path/Notepad.jnlp">Launch Notepad Application</a>

该文档指出当您单击链接时:

  

Java Web Start软件根据JNLP文件中的说明加载并运行应用程序。

不是我在安装了Oracle Java 8u40的OS X 10.9上的Safari 7.1上获得的行为。相反,我只是下载了jnlp文件,可以双击下载的文件来运行应用程序。我在某些浏览器上认为,Oracle可能会向浏览器提供一个插件,该插件能够自动启动jnlp引用的应用程序而无需用户双击下载的jnlp文件。 或许如果使用了Java deployment toolkit,而不是直接的a href链接,那么用户体验可能更加无缝。

注意:浏览器制造商已逐步取消对此类插件技术的支持,因此,您和您的用户的体验甚至自动运行引用的应用程序的能力可能会有所不同。另外,允许这样的插件在浏览器环境中运行可以增加用户浏览器的安全攻击漏洞表面。 WebStart也是一种使用和支持用户的快速技术。因此,出于这些原因,我通常不建议使用WebStart作为部署解决方案。