精华内容
下载资源
问答
  • java脚本

    千次阅读 2017-09-19 21:12:50
    Java脚本语言就是JavaScript JavaScript,是一种基于对象的脚本语言。网景通讯公司最初在它的Navigator 2.0产品上设计并实现的,原名LiveScript。目前已经在WWW上广泛用于动态Web页面的编程语言。Java脚本语言的目的...
    Java脚本语言就是JavaScript 
    JavaScript,是一种基于对象的脚本语言网景通讯公司最初在它的Navigator 2.0产品上设计并实现的,原名LiveScript。目前已经在WWW上广泛用于动态Web页面的编程语言。
    Java脚本语言的目的是增加HTML的互动性
    Java脚本语言是一种轻量级的编程语言,
    Java脚本语言通常直接嵌入HTML页
    Java脚本语言是一种解释性语言(脚本的执行无需翻译)
    展开全文
  • JAVA中脚本语言的使用

    万次阅读 多人点赞 2016-07-19 12:23:39
    JAVA中脚本语言使用 2016年7月18日 下午 3:22 脚本语言的优势 描述应用复杂多变的业务逻辑,并在应用运行过程进行动态修改 为应用提供一种领域特定语言(DSL),供没有技术背景的普通用户使用 ...

    JAVA中脚本语言使用

    2016718

    下午 3:22

    脚本语言的优势

    描述应用中复杂多变的业务逻辑,并在应用运行过程中进行动态修改

    为应用提供一种领域特定语言(DSL),供没有技术背景的普通用户使用

    快速进行组件之间的整合

    快速开发出原型系统

    快速编写测试用例等

    【摘自《深入理解Java7:核心技术与最佳实践》】

    JVM中可以运行多种流行的脚本语言,可很好在平台上实践"多语言开发"

    包括JavaScriptJRubyJythonGroovy

    Java对脚本语言的支持

    获取脚本引擎:

    -通过脚本引擎名称获取

    -通过文件扩展名获取

    -通过MIME类型获取

    语言绑定:

    -通过engineputget方法绑定获取对象

    -使用createBindingsSimpleBindings绑定对象并传递给脚本引擎

    执行上下文:

    输入输出

    -setWriter重定向脚本的输入到一个文件

    -setReader

    -setErrorWriter

    自定义属性

    -ScriptContext有作用域之分(ENGINE_SCOPE|GLOBAL_SCOPE)

    -通过Bindings绑定对象,也有对应作用域之分

    方法调用

    -Java中调用脚本中顶层方法示例

    -Java中调用脚本中对象的成员方法

    -脚本中实现Java接口

    脚本编译

      

    展开全文
  • Java调用Shell命令和脚本

    万次阅读 多人点赞 2016-05-07 13:45:43
    1.介绍 有时候我们在Linux运行Java程序时,需要调用一些Shell命令和脚本。而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且

    1.介绍

    有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本。而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法:

    Process exec(String command) 
    在单独的进程中执行指定的字符串命令。 
    
    Process exec(String[] cmdarray) 
    在单独的进程中执行指定命令和变量。 
    
    Process exec(String[] cmdarray, String[] envp) 
    在指定环境的独立进程中执行指定命令和变量。 
    
    Process exec(String[] cmdarray, String[] envp, File dir) 
    在指定环境和工作目录的独立进程中执行指定的命令和变量。 
    
    Process exec(String command, String[] envp) 
    在指定环境的单独进程中执行指定的字符串命令。 
    
    Process exec(String command, String[] envp, File dir) 
    在有指定环境和工作目录的独立进程中执行指定的字符串命令。 


    其中,其实cmdarray和command差不多,同时如果参数中如果没有envp参数或设为null,表示调用命令将在当前程序执行的环境中执行;如果没有dir参数或设为null,表示调用命令将在当前程序执行的目录中执行,因此调用到其他目录中的文件和脚本最好使用绝对路径。各个参数的含义:

    1. cmdarray: 包含所调用命令及其参数的数组。 
    2. command: 一条指定的系统命令。
    3. envp: 字符串数组,其中每个元素的环境变量的设置格式为name=value;如果子进程应该继承当前进程的环境,则该参数为 null。
    4. dir: 子进程的工作目录;如果子进程应该继承当前进程的工作目录,则该参数为 null。 

    细心的读者会发现,为了执行调用操作,JVM会启一个Process,所以我们可以通过调用Process类的以下方法,得知调用操作是否正确执行:

    abstract  int waitFor() 
    导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。 


    进程的出口值。根据惯例,0 表示正常终止;否则,就表示异常失败。

    另外,调用某些Shell命令或脚本时,会有返回值,那么我们如果捕获这些返回值或输出呢?为了解决这个问题,Process类提供了:

    abstract InputStream  getInputStream() 
    获取子进程的输入流。 最好对输入流进行缓冲。

    2.调用Shell命令

    这里为了说明问题,我仅用tar命令进行演示。tar命令是一个打包而不进行压缩的命令。同时,为了检查tar的调用是否被正常执行,我将调用waitFor()方法。

    private void callCMD(String tarName, String fileName, String... workspace){
    	try {
    		String cmd = "tar -cf" + tarName + " " + fileName;
    //            String[] cmd = {"tar", "-cf", tarName, fileName};
    		File dir = null;
    		if(workspace[0] != null){
    			dir = new File(workspace[0]);
    			System.out.println(workspace[0]);
    		}
    		process = Runtime.getRuntime().exec(cmd, null, dir);
    //          process = Runtime.getRuntime().exec(cmd);
    		int status = process.waitFor();
    		if(status != 0){
    			System.err.println("Failed to call shell's command and the return status's is: " + status);
    		}
    	}
    	catch (Exception e){
    		e.printStackTrace();
    	}
    }


    注意:如果把命令放到一个String[]中时,必须把命令中每个部分作为一个元素存在String[]中,或者是把命令按照空格符分割得到的String[]。

    String[] cmd = {"tar", "-cf", tarName, fileName};		//right
    String[] cmd = {"tar -cf", tarName, fileName};			//error

    为了说明dir参数的作用,我特地把该Java程序和要打包的目录hive/放在不同的目录:

    /root/workspace/eclipse/Test/src/edu/wzm/CallShell.java
    /root/experiment/hive
    


    如果我不设置dir或设dir为null,那么fileName不得不是相对路径,最好是绝对路径:

    call.callCMD("/root/experiment/hive.tar", "/root/experiment/hive", null);
    // OR
    call.callCMD("/root/experiment/hive.tar", "/root/experiment/hive");


    如果我设置了dir指向了hive所在的父目录就好办多了:

    call.callCMD("hive.tar", "hive", "/root/experiment/");

    3.调用Shell脚本

    Java调用Shell命令和调用Shell脚本的操作一模一样。我这里介绍另外几个方面:

    1. 给脚本传递参数;
    2. 捕获调用的输出结果;
    3. envp的使用。

    给脚本传递参数,这个操作很简单,无非是把参数加到调用命令后面组成String,或String[]。

    捕获调用输出信息,前面也提到过用Process.getInputStream()。不过,建议最好对输入流进行缓冲:

    BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));


    另外,envp是一个String[],并且String[]中的每一个元素的形式是:name=value。如:我的Linux系统中没有以下环境变量,但是我把它们写在Java代码中,作为envp:

    val=2
    call=Bash Shell


    我要调用的Shell脚本是:/root/experiment/test.sh。

    #!/usr/bin/env bash
    
    args=1
    if [ $# -eq 1 ];then
    	args=$1
    	echo "The argument is: $args"
    fi
    
    echo "This is a $call"
    start=`date +%s`
    sleep 3s
    end=`date +%s`
    cost=$((($end - $start) * $args * $val))
    echo "Cost Time: $cost"


    Java调用代码是:

    private void callScript(String script, String args, String... workspace){
    	try {
    		String cmd = "sh " + script + " " + args;
    //        	String[] cmd = {"sh", script, "4"};
    		File dir = null;
    		if(workspace[0] != null){
    			dir = new File(workspace[0]);
    			System.out.println(workspace[0]);
    		}
    		String[] evnp = {"val=2", "call=Bash Shell"};
    		process = Runtime.getRuntime().exec(cmd, evnp, dir);
    //            process = Runtime.getRuntime().exec(cmd);
    		BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
    		String line = "";
    		while ((line = input.readLine()) != null) {
    			System.out.println(line);
    		}
    		input.close();
    	}
    	catch (Exception e){
    		e.printStackTrace();
    	}
    }
    
    public static void main(String[] args) {
    	// TODO Auto-generated method stub
    	CallShell call = new CallShell();
    	call.callScript("test.sh", "4", "/root/experiment/");
    }


    输出:

    /root/experiment/
    The argument is: 4
    This is a Bash Shell
    Cost Time: 24

    展开全文
  • java中调用本地脚本

    千次阅读 2018-07-08 20:41:25
    java中可以调用本地脚本,也可以远程调用shell脚本,但是java调用远程脚本不安全,一般不这么做,那该怎么调用呢? 建议在本地写个脚本调用远程脚本,在java程序调用本地脚本,具体代码: private int exec...

    java中可以调用本地脚本,也可以远程调用shell脚本,但是java调用远程脚本不安全,一般不这么做,那该怎么调用呢?
    建议在本地写个脚本调用远程脚本,在java程序中调用本地脚本,具体代码:

    private int execShell(String shellPath, String... params) {
            StringBuilder command = new StringBuilder(shellPath).append(" ");
            for (String param : params) {
                command.append(param).append(" ");
            }
    
            BufferedReader br = null;
            StringBuilder sb = null;
            try {
                Process process = Runtime.getRuntime().exec(command.toString());
                process.waitFor();
    
                br = new BufferedReader(new InputStreamReader(process.getInputStream()));
                sb = new StringBuilder();
                String line;
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }
            } catch (Exception e) {
                LOG.error("execShell() error, shellPath: {}, params: {}", shellPath, params, e);
                return -2;
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return "".equals(sb.toString()) ? 0 : Integer.parseInt(sb.toString());
        }

    注意:如果脚本执行成功,process.waitFor()会返回0状态码;如果脚本执行出错,本根据不同的错误返回不同的状态码,此时需要使用流获取到脚本返回的状态

    展开全文
  • Java中执行Groovy脚本

    千次阅读 2017-06-27 14:15:35
    Groovy脚本执行
  • java调用shell脚本

    热门讨论 2010-10-29 21:08:20
    java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本
  • Java中执行JS脚本

    千次阅读 2018-12-06 23:42:40
    Java是静态语言,需要...本文为在网友的文章基础上整理,记录在Java中执行JavaScript的方法,以此备忘。 我们要执行的JavaScript脚本conwork.js: var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghij...
  • JAVA 脚本引擎

    千次阅读 2018-07-09 19:42:12
    Java脚本引擎API 实现了java程序和脚本之间的交互,是一类接口,是的java和python ,js等脚本的交互 Rihno是由第三方实现了JAVA引擎接口是的javascript脚本与java交互package lili.xidain.script; import java.io....
  • 怎么在java代码调用shell脚本

    千次阅读 2019-06-11 22:35:04
    可以在java代码调用shell脚本的,下面是一个简单示例 1.java代码示例如下: /** * java程序调用shell脚本 */ public class JavaExecuteShell { public static void main(String[] args) { try { String ...
  • Java中运行javascript脚本示例

    千次阅读 2014-02-25 15:02:51
    Java中运行javascript脚本示例 import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; /** * * @author
  • java 执行sql脚本 例子

    热门讨论 2010-08-05 12:07:24
    java 执行sql脚本 例子java 执行sql脚本 例子java 执行sql脚本 例子java 执行sql脚本 例子java 执行sql脚本 例子java 执行sql脚本 例子java 执行sql脚本 例子java 执行sql脚本 例子java 执行sql脚本 例子java 执行...
  • Java 利用脚本API运行Groovy脚本的方式

    千次阅读 2017-08-23 16:15:36
    运用java Script API可以非常方便的运行能够在JVM运行的脚本程序,并通过其脚本引擎进行参数传递等。
  • java中使用lua脚本

    千次阅读 2019-10-08 21:55:26
    第一步: windows下,先下载安装lua 下载地址 我选了lua-5.3.4_Win64_bin.zip为例 第二步: ...java项目引入luaj git项目为例: <dependency> <groupId>org.luaj</groupId> ...
  • java调用Groovy脚本

    万次阅读 2019-02-01 17:28:50
    用 Groovy 的 GroovyClassLoader ,它会动态地加载一个脚本并执行它。GroovyClassLoader是一个Groovy定制的类装载器,负责解析加载Java类中用到的Groovy类。 先创建一个groovy脚本,非常简单,定义一个用于计算的...
  • Java中运行动态脚本Groovy

    千次阅读 2017-12-03 10:49:34
    这里主要总结Java中集成Groovy的应用。 Groovy可以与Java完美集成来扩展我们的应用,比如替代Java+jexl实现算式表达式计算或其它功能。在Ofbiz也集成了Groovy来执行一些查询功能,并且是开始更多的使用Groovy...
  • Java运行脚本命令

    千次阅读 2018-08-30 16:41:54
    Java中有时候需要通过调用shell命令来完成对应的操作,之后返回执行的结果进行一些结果的解析,可以使用Runtime.getRuntime().exec()方法来执行shell命令,具体的方法如下: public Process exec(String command...
  • Java 执行 JS 脚本工具

    千次阅读 2016-10-24 16:04:00
    Java 执行 JS 脚本工具用途:为了便于系统扩展,提供了 JS 脚本的功能,可以通过在系统执行脚本来获得更复杂的功能。例如:系统提供了一个接口,这个接口不必非的有实现类,而是可以通过JS来实现这个接口的方法,...
  • Java中执行脚本命令以及调用外部程序说明 一、Java中关于ProcessBuilder 和 Runtime 类的介绍 在Java中要想调用脚本或者其他程序必须通过ProcessBuilder 和 Runtime 类,以上两个类任选一个就行,关于他们的介绍...
  • java调用python脚本

    万次阅读 多人点赞 2017-08-23 18:36:35
    这篇博客旨在吐血分享今天遇到的java调用python脚本遇到的坑,折腾了3个多小时终于可以跑通了,代码超级短,但网上的好多资料都是抄来抄去的,很少有能够直接跑通的,尤其是针对你的python文件中用到第三方类库的...
  • Java中使用LUA脚本语言

    千次阅读 2013-04-08 20:07:08
    Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成...
  • java中调用linux命令或者脚本

    千次阅读 2011-09-29 16:49:34
    系统中需要实现在网页上点击按钮从而自动更新网站版本,而更新网站版本需要在服务器上执行一系列的操作,将一系列的命令写入shell脚本中,在java后台中调用并执行该脚本,就可以实现需求功能。  进入正题,在java...
  • Java调用各种脚本

    千次阅读 2018-09-11 14:35:06
    JSR223规范了在Java虚拟机上运行的脚本语言与Java程序之间的交互方式。JSR233是JavaSE6的一部分,在JavaAPI的包是javax.script。目前Java虚拟机支持比较多的脚本语言,比较流行的有JavaScript、Scala、JRuby、...
  • java图片爬虫脚本_代码下载

    万次阅读 2016-03-31 09:49:21
    这篇文章主要介绍了,如何用纯java写一个图片爬虫,美女图片爬虫代码分享,本文以采集抓取美女图片为例,需要的朋友可以参考下继续鼓捣爬虫,你懂的!粘贴就可以用.
  • java中启动sh脚本

    千次阅读 2016-06-13 17:11:30
    1.先在对应目录下创建一个sh的脚本...可以在该文件写入shell脚本的内容,如: #!/bin/sh echo 'Hello World!' 然后ctrl+x 选择Y 保存文件。 2.chmod 777 test.sh给该文件赋予操作权利 3../test
  • java中调用lua脚本语言1

    千次阅读 2017-04-10 18:35:12
    Lua是一个实用的脚本语言,相对于Python来说,比较小巧,但它功能并不逊色,特别是在游戏开发非常实用(WoW采用的就是Lua作为脚本的)。Lua在C\C++的实现我就不多说了,网上随便一搜,到处都是这方面的介绍,我想...
  • 使用java调用linux脚本

    千次阅读 2012-05-24 06:22:18
    java程序如何调用linux的命令?如何调用shell脚本呢? java中,当调用外部程序时,可以使用, Process proc = Runtime.getRuntime().exec(String command); 这里不得不提到java的process类了。 process这...
  • Java调用Python脚本

    万次阅读 2018-11-22 16:15:06
    最近突发奇想地想要在Java里调用Python脚本,在网上查过之后还真的可以。 常见的java调用python脚本方式 通过Jython.jar提供的类库实现 通过Runtime.getRuntime()开启进程来执行脚本文件 这两种方法我都尝试过,...
  • Java执行脚本命令

    千次阅读 2018-06-14 16:21:11
    //初始化脚本命令 String commond = ""; Process process = null; //脚本执行返回值 boolean flag = false; try { //开始执行脚本 process = Runtime.getRuntime().exec(commond); //这是jdk1.8的wait...
  • 1.执行bat脚本 (1)传入参数 bat处理文件可引用的参数为%0~%9,%0是指批处理文件的本身,也可以说是一个外部命令;%1~%9是批处理参数,也称形参,例如:新建一个文件test_argv.bat,文件内...
  • JMeter性能测试-自定义Java脚本

    万次阅读 2018-03-04 19:49:27
    使用JMeter做性能测试时,我们通常都是需要自己编写测试脚本,才能满足测试用例的需求,Jmeter也是支持我们自定义编写测试脚本的,而且支持Java、Python等多种语言。在这里,我们选择使用Java语言开发测试脚本,是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 615,035
精华内容 246,014
关键字:

java中脚本是什么意思

java 订阅