真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java8執(zhí)行js代碼的簡單介紹

js轉(zhuǎn)java代碼

package p1;

為離石等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及離石網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、離石網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

import java.util.Arrays;

import java.util.LinkedList;

public class Guy

{

public static void recursionSub ( LinkedListint[] list, int count, int[] array, int ind, int start, int... indexs )

{

start++;

if (start count - 1)

{

return;

}

if (start == 0)

{

indexs = new int[array.length];

}

for ( indexs = ind; indexs array.length; indexs++ )

{

recursionSub (list, count, array, indexs + 1, start, indexs);

if (start == count - 1)

{

int[] temp = new int[count];

for ( int i = count - 1; i = 0; i-- )

{

temp[start - i] = array[indexs[start - i]];

}

list.add (temp);

}

}

}

public static void main ( String[] args )

{

int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

LinkedListint[] list = new LinkedListint[] ();

recursionSub (list, 3, array, 0, -1);

for ( int[] strings : list )

{

System.out.println (Arrays.toString (strings));

}

}

}

有沒有哪個Java 8妙用Nashorn引擎的好例子

使用Java8,Nashorn大大提高了JavaScript 引擎引入,以取代現(xiàn)有的Nashorn Java腳本引擎。Nashorn提供2至10倍更好的性能,因?yàn)樗苯泳幾g代碼在存儲器,并傳遞到字節(jié)碼JVM.Nashorn使用invokedynamics函數(shù),在Java7引入以提高性能。

jjs

對于Nashorn引擎,JAVA8引入了一個新的命令行工具,JJS到控制臺執(zhí)行Java腳本代碼。

解讀js文件

創(chuàng)建并保存sample.js在 C: JAVA 文件夾。

sample.jsprint('Hello World!');

打開控制臺并使用下面的命令。

C:\JAVAjjs sample.js

看到結(jié)果

Hello World!

JJS在交互模式

打開控制臺并使用下面的命令

C:\JAVAjjs

jjs print("Hello, World!")

Hello, World!

jjs quit()

傳遞參數(shù)

打開控制臺并使用下面的命令。

C:\JAVA jjs -- a b c

jjs print('letters: ' +arguments.join(", "))

letters: a, b, c

jjs

在JAVA調(diào)用JavaScript

使用ScriptEngineManager,JavaScript代碼用Java編寫可以被調(diào)用。

示例

選擇使用任何編輯器創(chuàng)建以下java程序在 C:/ JAVA

Java8Tester.javaimport javax.script.ScriptEngineManager;

import javax.script.ScriptEngine;

import javax.script.ScriptException;

public class Java8Tester {

public static void main(String args[]){

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();

ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");

String name = "Mahesh";

Integer result = null;

try {

nashorn.eval("print('" + name + "')");

result = (Integer) nashorn.eval("10 + 2");

}catch(ScriptException e){

System.out.println("Error executing script: "+ e.getMessage());

}

System.out.println(result.toString());

}

}

驗(yàn)證結(jié)果

使用javac編譯器編譯如下類

C:\JAVAjavac Java8Tester.java

現(xiàn)在運(yùn)行Java8Tester看到的結(jié)果

C:\JAVAjava Java8Tester

看到結(jié)果

Mahesh

12

從JavaScript調(diào)用Java

下面的例子將展示如何導(dǎo)入和使用Java類的Java腳本。

創(chuàng)建并保存 sample.js 在 c: JAVA 文件夾.

sample.jsvar BigDecimal = Java.type('java.math.BigDecimal');

function calculate(amount, percentage) {

var result = new BigDecimal(amount).multiply(

new BigDecimal(percentage)).divide(

new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);

return result.toPlainString();

}

var result = calculate(568000000000000000023,13.9);

print(result);

打開控制臺并使用下面的命令。

C:\JAVAjjs sample.js

看到結(jié)果

78952000000000000003.20

如何將JSP中的java代碼中的值,傳入JS代碼中去

js與java是不同語言,運(yùn)行在不同環(huán)境下,因此無法直接獲得對方數(shù)據(jù)。

java運(yùn)行在服務(wù)器端,在同一個jsp文件中,java先運(yùn)行,js后運(yùn)行,java可以生成一段js代碼,保證js運(yùn)行得到相應(yīng)的結(jié)果,因此可以用java定義js變量的方式來傳遞數(shù)據(jù),例如:

script

var url="%=url%";

alert(username);

/script

上面例子,%%中的內(nèi)容會在服務(wù)器端運(yùn)行,在“”中間輸出網(wǎng)址,瀏覽器就會加載下面的結(jié)果:

script

var url="gif8點(diǎn)吸煙 ";

alert(url);

/script

這部分就是標(biāo)準(zhǔn)的js代碼了。

如何把java代碼嵌入到j(luò)avascript中

1.取得腳本解釋器的管理器Manager

2.從管理器中取得js的解釋器實(shí)例ScriptEngine

3.取得存儲javascript變量的Bindings實(shí)例

4.把一個java.io.Reader流及Bindings傳遞給ScriptEngine的eval方法返回腳本運(yùn)行結(jié)果,如果執(zhí)行中發(fā)生錯誤,會拋出ScriptException異常。

例:運(yùn)行javascript腳本的一個java程序

throwsIOException{ScriptEngineManagerscriptManager=newScriptEngineManager;//從管理器中獲取js的解釋器//定義我們要運(yùn)行的腳本文件Stringfilename=null;//通過解釋器來獲得存儲javascript變量的Bindings的實(shí)例,使它們提供給腳本。Bindingsbindings=js.createBindings;//在map中獲取和設(shè)置值的方法publicObjectget;//使用我們的name/value對(即javascript變量)Bindingsbindings=newSimpleBindings(defaults);//創(chuàng)建一個變量,用于存放腳本執(zhí)行的內(nèi)容ScriptContextcontext=newSimpleScriptContext();//設(shè)置那些Bindings在Context中,使它們可讀。但這樣的變量定義的腳本不要放入我們的Map中context.setBindings(bindings,ScriptContext.GLOBAL_SCOPE);BufferedReaderin=newBufferedReader(newFileReader(filename));Stringline;while((line=in.readLine())!=null){line=line.trim();if(line.length()==0)continue;//跳過空行if(line.charAt(0)==‘#‘)continue;//跳過命令intpos=line.indexOf(":");if(pos==-1){thrownewIllegalArgumentException("syntax:"+line);}Stringname=line.substring(0,pos).trim();Stringvalue=line.substring(pos+1).trim();charfirstchar=value.charAt(0);intlen=value.length();charlastchar=value.charAt(len-1);if(firstchar==‘"‘lastchar==‘"‘){//雙引號引用的值為字符串defaults.put(name,value.substring(1,len-1));}elseif(Character.isDigit(firstchar)){//如果開始是一個數(shù)字try{doubled=Double.parseDouble(value);defaults.put(name,value);}catch(NumberFormatExceptione){//沒有數(shù)字,是一個stringdefaults.put(name,value);}}elseif("true".equals(value)){//處理布爾值defaults.put(name,Boolean.TRUE);}elseif("false".equals(value)){defaults.put(name,Boolean.FALSE);}elseif("null".equals(value)){//處理null值defaults.put(name,null);}elseif(firstchar==‘{‘lastchar==‘}‘){//如果值是在一對大括號之內(nèi),則執(zhí)行javascript代碼Stringscript=value.substring(1,len-1);Objectresult=engine.eval(script,context);defaults.put(name,result);}else{//其它情況,剛好是一個字符串defaults.put(name,value);}}}//一個簡單的類的測試程序publicstaticvoidmain(String[]args)throwsIOException,ScriptException{Configurationdefaults=newConfiguration();defaults.load(args[0]);Set


新聞名稱:java8執(zhí)行js代碼的簡單介紹
URL地址:http://weahome.cn/article/ddcpddg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部