2016-01-02 40 views
0

我正在学java。但我没有得到它的实际用途。下面是我的具体问题 使用从Java调用JavaScript,反之亦然?

从Java调用JavaScript的

1)什么是实际情形时,作为一个开发人员,我想从Java调用JavaScript?

从Javascript

2中调用Java)什么时候是作为一个开发人员,我想从JavaScript调用java的实际情况?

3)如果是,浏览器将如何从JavaScript执行java。系统托管是否需要JRE,浏览器会使用它?

+1

问题3显示了很多误解。 Nashorn与浏览器无关。而且,JavaScript(在浏览器中)可能(历史上)会向Applets发出呼叫(但小程序已基本绝迹)。 –

回答

1
1)作为开发人员,我想从java调用javascript时的实际场景是什么?
  1. 假设你正在写在Java的浏览器,那么你就需要从Java运行JS解释器显示页面和处理JS代码。
  2. 假设你想在Java中提供一个JS语法检查器,例如eclipse中的JS编辑器。
  3. 或者你想运行JS的教程网站,用户在浏览器中编写JS代码,并对它进行评估并显示像Learnstreet,Udacity等大多数网站所做的错误。
  4. 作为后端(服务器端)开发人员,您必须为您的前端(客户端)开发人员提供一项功能,以便他们向您发送JS代码,并在服务器上完成相关任务。 Service NowPresto Mashups是其中的一些例子。
  5. 有一个您想要使用的JS API,而无需先将其转换为Java代码。现在支持用于Java和其他几种语言的JS库是一种常见模式,因此它们可以使用诸如Mozilla RhinoOracle Nashorn之类的JS引擎运行而没有太多的困难。
2)作为开发人员,我想从javascript调用java时的实际场景是什么?
  1. 在编写JS代码时,您会在指尖上看到完整的Java API,答案是为什么?
  2. 您正在服务器上使用JS引擎运行一些JS代码,并且需要将输出返回给JVM或调用某个事件。甚至可能会列出目录,读取调用数据库的文件是JS代码的要求。
  3. 考虑Node JS,它只是一个JS解释器written in C, C++这是做同样的事情。它为JS开发人员提供了C和C++的强大功能。与Rhino和Nashorn一样。由于自然界JS的功能有限,因为它用于在浏览器上运行,所以它需要一些额外的API来提升性能。我以Node JS为例,因为它的受欢迎程度显示了这个功耗需要多少。只是为了好玩试试这个视频interview Ryan Dahl
3)如果是,浏览器将如何从javascript执行java。系统托管是否需要JRE,浏览器会使用它?
  1. 浏览器不会运行包含Java部件的JS代码。 JS引擎是为了在服务器端获得JS代码。这给JS开发人员提供了使用他的JS技能来编写服务器端代码的机会。但是,如果需要,浏览器可以将JS代码发送到服务器进行解释,如Presto Jackbe Mashups。
+0

但'Node JS'主要是关于在服务器端执行javascript的。我们不会在'nodejs'中的javascript中调用java代码? – user3198603

+0

是的,这只是一个JS代码在Node JS中调用C,C++例程的例子。同样的事情是由Nashorn在从JS代码调用Java API时完成的。 – 11thdimension

1

我没有从Javascript调用Java的经验。不过,我已经看到JavaScript从Java调用。我所看到的用例是最终客户端需要扩展Java框架的地方。这是通过让最终用户在Javascript中添加逻辑来实现的。然后,实际的Javascript代码可以存储在数据库中,并在框架需要时执行。

0

1)Java中的JavaScript引擎的实际使用是在创建或使用HTTP适配器时。在这种情况下,您需要能够处理所有JavaScript,以模拟真实的浏览器连接。处理JavaScript的Java HTTP适配器的示例是HTMLUnit

2)我不认为这经常被用到,或者根本不用,特别是Chrome不支持NPAPI插件,以及Firefox(source)。尽管有这些观点,javascript和java之间的通信可以用来为网站或应用程序添加功能,尽管这似乎不可行。

3)参见上文。

相关问题