javashell脚本怎么写
1.在linux下对写好的java程序编写shell脚本要怎么写
-----以下是我项目的startup.sh的内容------
-----用shell调用java程序----------
if [ -z ${JAVA_HOME} ]
then
echo "JAVA_HOME not set yet,can't run java program!"
exit -1
fi
CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar
JLIBDIR=./lib
export JLIBDIR
for LL in `ls ${JLIBDIR}/*.jar`
do
CLASSPATH=${CLASSPATH}:${LL}
done
echo ${CLASSPATH}
export CLASSPATH
JAVA_OPTION="-Dfile.encoding=GBK -Xms256m -Xmx256m -XX:MaxPermSize=64m"
RUN_CLASS=com.lxq.batch.Main
${JAVA_HOME}/bin/java ${JAVA_OPTION} -classpath ${CLASSPATH} ${RUN_CLASS}
2.如何在java中执行shell脚本
1、最常用的方法:Process p = Runtime.getRuntime().exec(SHELL_FILE_DIR + RUNNING_SHELL_FILE + " "+param1+" "+param2+" "+param3); int runnngStatus = p.waitFor();2、通过ProcessBuilder进行调度,这种方法比较直观,而且参数的设置也比较方便:ProcessBuilder pb = new ProcessBuilder("./" + RUNNING_SHELL_FILE, param1, param2, param3);pb.directory(new File(SHELL_FILE_DIR));int runningStatus = 0;String s = null;try { Process p = pb.start(); try { runningStatus = p.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); }} catch (IOException e) { e.printStackTrace(); }if (runningStatus != 0) {}return;参数说明:RUNNING_SHELL_FILE:要运行的脚本SHELL_FILE_DIR:要运行的脚本所在的目录; 当然你也可以把要运行的脚本写成全路径。
runningStatus:运行状态,0标识正常。 详细可以看java文档。
param1, param2, param3:可以在RUNNING_SHELL_FILE脚本中直接通过1,1,2,$3分别拿到的参数。
3.如何在java中执行shell脚本
参考如下方式可以执行shell脚本:
// 用法:Runtime.getRuntime().exec("命令");
String shpath="/test/test.sh"; //程序路径
Process process =null;
String command1 = “chmod 777 ” + shpath;
try {
Runtime.getRuntime().exec(command1 ).waitFor();
} catch (IOException e1) {
e1.printStackTrace();
}catch (InterruptedException e) {
e.printStackTrace();
}
String var="201102"; /参数
String command2 = “/bin/sh ” + shpath + ” ” + var;
Runtime.getRuntime().exec(command2).waitFor();
4.求助,编写shell脚本,脚本内容执行一个java类
在Windows下写了个bat,你参考下吧,linux下也差不多。还要开虚拟机麻烦。
=======================Test0.java===========放在C:\下
public class Test0 {
public static void main(String[] args) {
System.out.println("输入的两个参数为:");
System.out.println(args[0]);
System.out.println(args[1]);
}
}
===========================test.bat ==============================
@echo off
rem 从控制台接收两个参数,并传递给java main的String[]args数组
echo 开始编译。
cd c:\
javac Test0.java
echo 编译成功!
set /p arg1=输入第一个参数:
set /p arg2=输入第二个参数:
echo -----------java执行输出----------------
java Test0 %arg1% %arg2%
echo ----------------------------------------
echo 操作完成!
pause
5.java怎么调用shell脚本
String cmdstring = "chmod a+x test.sh";
Process proc = Runtime.getRuntime().exec(cmdstring);
proc.waitFor(); //阻塞,直到上述命令执行完
cmdstring = "bash test.sh"; //这里也可以是ksh等
proc = Runtime.getRuntime().exec(cmdstring);
// 注意下面的操作
string ls_1;
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(proc.getInputStream());
while ( (ls_1=bufferedReader.readLine()) != null);
bufferedReader.close();
proc.waitFor();为什么要有上面那段操作呢?
原因是:可执行程序的输出可能会比较多,而运行窗口的输出缓冲区有限,会造成waitFor一直阻塞。解决的办法是,利用Java提供的Process类提供的getInputStream,getErrorStream方法让Java虚拟机截获被调用程序的标准输出、错误输出,在waitfor()命令之前读掉输出缓冲区中的内容。
6.想写一个shell脚本,内容是一个创建目录的,还有java如何调用的,求
public static synchronized void www() throws Exception {
Process pro = null;
String cmd = "D:/database/sqlpad/sqlpad.cmd";
pro = Runtime.getRuntime().exec(cmd);
new DoOutput(pro.getInputStream()).start();
new DoOutput(pro.getErrorStream()).start();
}
private static class DoOutput extends Thread {
public InputStream is;
public DoOutput(InputStream is) {
this.is = is;
}
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(this.is));
String str = null;
StringBuilder sb = new StringBuilder();
try {
while ((str = br.readLine()) != null){
sb.append(str+"\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
7.怎么通过java去调用并执行shell脚本以及问题总结
对于第一个问题:java抓取,并且把结果打包。
那么比较直接的做法就是,java接收各种消息(db,metaq等等),然后借助于jstorm集群进行调度和抓取。最后把抓取的结果保存到一个文件中,并且通过调用shell打包, 回传。
也许有同学会问, 为什么不直接把java调用odps直接保存文件,答案是,我们的集群不是hz集群,直接上传odps速度很有问题,因此先打包比较合适。(这里不纠结设计了,我们回到正题)java调用shell的方法通过ProcessBuilder进行调度这种方法比较直观,而且参数的设置也比较方便, 比如我在实践中的代码(我隐藏了部分业务代码):ProcessBuilderpb = new ProcessBuilder("./" + RUNNING_SHELL_FILE, param1,param2, param3);pb.directory(new File(SHELL_FILE_DIR));int runningStatus = 0;String s = null;try {Process p = pb.start();try {runningStatus = p.waitFor();} catch (InterruptedException e) {}} catch (IOException e) {}if (runningStatus != 0) {}return;这里有必要解释一下几个参数:RUNNING_SHELL_FILE:要运行的脚本SHELL_FILE_DIR:要运行的脚本所在的目录; 当然你也可以把要运行的脚本写成全路径。
runningStatus:运行状态,0标识正常。 详细可以看java文档。
param1, param2, param3:可以在RUNNING_SHELL_FILE脚本中直接通过1,2,$3分别拿到的参数。直接通过系统Runtime执行shell这个方法比较暴力,也比较常用, 代码如下:p = Runtime.getRuntime().exec(SHELL_FILE_DIR + RUNNING_SHELL_FILE + " "+param1+" "+param2+" "+param3);p.waitFor();我们发现,通过Runtime的方式并没有builder那么方便,特别是参数方面,必须自己加空格分开,因为exec会把整个字符串作为shell运行。
可能存在的问题以及解决方法如果你觉得通过上面就能满足你的需求,那么可能是要碰壁了。你会遇到以下情况。
没权限运行这个情况我们团队的朱东方就遇到了, 在做DTS迁移的过程中,要执行包里面的shell脚本, 解压出来了之后,发现执行不了。 那么就按照上面的方法授权吧java进行一直等待shell返回这个问题估计更加经常遇到。
原因是, shell脚本中有echo或者print输出, 导致缓冲区被用完了! 为了避免这种情况, 一定要把缓冲区读一下, 好处就是,可以对shell的具体运行状态进行log出来。 比如上面我的例子中我会变成:ProcessBuilderpb = new ProcessBuilder("./" + RUNNING_SHELL_FILE, keyword.trim(),taskId.toString(), fileName);pb.directory(new File(CASPERJS_FILE_DIR));int runningStatus = 0;String s = null;try {Process p = pb.start(); = new BufferedReader(new InputStreamReader(p.getInputStream())); = new BufferedReader(new InputStreamReader(p.getErrorStream()));while ((s = stdInput.readLine()) != null) {LOG.error(s);}while ((s = stdError.readLine()) != null) {LOG.error(s);}try {runningStatus = p.waitFor();} catch (InterruptedException e) {}记得在start()之后, waitFor()之前把缓冲区读出来打log, 就可以看到你的shell为什么会没有按照预期运行。
这个还有一个好处是,可以读shell里面输出的结果, 方便java代码进一步操作。也许你还会遇到这个问题,明明手工可以运行的命令,java调用的shell中某一些命令居然不能执行,报错:命令不存在!比如我在使用casperjs的时候,手工去执行shell明明是可以执行的,但是java调用的时候,发现总是出错。
通过读取缓冲区就能发现错误日志了。 我发现即便自己把安装的casperjs的bin已经加入了path中(/etc/profile, 各种bashrc中)还不够。
比如:exportNODE_HOME="/home/admin/node"exportCASPERJS_HOME="/home/admin/casperjs"exportPHANTOMJS_HOME="/home/admin/phantomjs"exportPATH=$PATH:$JAVA_HOME/bin:/root/bin:$NODE_HOME/bin:$CASPERJS_HOME/bin:$PHANTOMJS_HOME/bin原来是因为java在调用shell的时候,默认用的是系统的/bin/下的指令。特别是你用root权限运行的时候。
这时候,你要在/bin下加软链了。针对我上面的例子,就要在/bin下加软链:ln -s /home/admin/casperjs/bin/casperjscasperjs;ln -s /home/admin/node/bin/nodenode;ln -s /home/admin/phantomjs/bin/phantomjsphantomjs;这样,问题就可以解决了。
如果是通过java调用shell进行打包,那么要注意路径的问题了因为shell里面tar的压缩和解压可不能直接写:tar -zcf /home/admin/data/result.tar.gz /home/admin/data/result直接给你报错,因为tar的压缩源必须到路径下面, 因此可以写成tar -zcf /home/admin/data/result.tar.gz -C /home/admin/data/ result如果我的shell是在jar包中怎么办?答案是:解压出来。再按照上面指示进行操作。
(1)找到路径 String jarPath = findClassJarPath(ClassLoaderUtil.class); = null;try {topLevelJarFile = new JarFile(jarPath);Enumeration
自动化脚本怎么写
1.求自动化测试脚本编写教程,别就说让我去学各式语言,详细点
你好
我是从事自动化测试方面的
1、自动化测试脚本,包括下面几个方面
1)CLI自动化测试,其应用脚本技术,包括tcl、phython、ruby,你学好一门自动化测试脚本即可,因为CLI的自动化测试就是应用脚本去模拟人工输入命令行,建议学习一下phython,因为其强大的社区,还有不亚于高级语言的编程思想。
2)工具方面,自动化测试工具例如:RFT的脚本包括java与.net;QPT的脚本为VB等。你有一定的编程基础的话,就不要停留在工具试用方面,而是要去重点学习一下其工具思想。你没有基础的话,你就从其RFT与QTP的帮助文档看起,里面都有关于这些功能的API的。
3)自动化测试框架,这个方面不是单存的自动化测试脚本了,而是利用编程技巧,结合各种自动化测试理念去构建适合自己的自动化测试框架,则就要求一定高度的编程技巧和各种知识了。
你需要自动化测试脚本编写教程,这先要看你去掌握什么方面的的自动化测试脚本了,我可以提供你教程,但关键先看你的需求
这样,推荐你一个博客, 是专注自动化测试的博客。你先看看,我觉得你对自动化测试认识不深,你先把自动化测试弄得有点小明白,再去看看。你需要什么,你的方向是什么:
51tesing上的“散步的SUN”的博客,这是我的博客,你可以在百度里面直接输入“散步的SUN”就是其博客了。上面有各种关于自动化测试方面的知识,希望对你又帮助吧。
或者对自动化测试有兴趣的,可以发短消息或者邮件我吧(test_sunny@hotmail.com),有机会一起学习探讨下
2.自动化测试脚本一般用什么语言写
我主要是做web测试的,最近也在研究自动化测试。
自动化测试主流的工具应该是QTP吧,这个你可以去51testing论坛搜到很多相关的资料。QTP是一个商业软件。
“不同的工具就要使用不同的脚本语言吗?”-对于这个,我才疏学浅,不好回答。但主流的脚本语言有java、ruby、python吧,
有些工具是跨平台、跨语言的。我使用cucumber+ruby+selenium-webdriver,cucumber用来写测试用例,ruby作为脚本语言,selenium-webdriver是用来驱动浏览器的。
如果楼主也是搞web测试的,我们可以交流交流
3.自动化用例如何编写
通俗来讲,自动化用例分为功能用例(文字)和.代码用例(脚本)两个方面,先有功能用例在其转化为代码用例去执行;
1??功能用例(文字):
说明:通常执行自动化测试时,功能测试已执行完毕,而自动化测试本质上归属功能测试,所以自动化测试用例都是通过功能用例进行抽取和转化,只需要在功能用例模版上添加一列[是否自动化]即可;
2??代码用例(脚本)
说明:代码用例就是将转化来的功能用例使用编程语言(python\java)来实现功能用例的操作步骤、预期结果等,当然在实际操作中要结合相应的用例执行框架比如python中的unittest\pytest或java语言中的junit\testng,具体详情可以到网络上找下黑马程序员自动化测试视频,之前在他们官网上看过一阶段视频。找不到去官网对话框问一下也能领取
4.如何用python写一个自动化脚本
#!/usr/bin/env python
import sys
str = True
while (str):
dig = int(input())
if dig > 100:
print 'please input mun between 0~100'
elif dig >= 90:
print 'A'
elif dig >= 80:
print 'B'
elif dig >= 70:
print 'C'
elif dig >= 60:
print 'D'
elif dig
5.什么是脚本
脚本:写剧本的人,也叫故事构成。
脚本英文为Script。实际上脚本就是程序,一般都是有应用程序提供的编程语言。应用程序包括浏览器(JavaScript、VBScript)、多媒体创作工具,应用程序的宏和创作系统的批处理语言也可以归入脚本之类。脚本同我们平时使用的VB、C语言的区别主要是:
1、脚本语法比较简单,比较容易掌握;
2、脚本与应用程序密切相关,所以包括相对应用程序自身的功能;
3、脚本一般不具备通用性,所能处理的问题范围有限。
脚本,英文名为Script,简单地说,脚本就是指通过记事本程序或其它文本编辑器(如Windows Script Editor,EditPlus等)创建,并保存为特定扩展名(如.reg , .vbs, .js, .inf等)的文件,对于注册表脚本文件就是利用特定的格式编辑的.reg文件;对于VBScript脚本编程语言来说,脚本文件扩展名就是.vbs;对于JScript脚本编程语言来说,脚本文件扩展名就是.js;另外,.wsf格式是Microsoft定义的一种脚本文件格式,即Window Script File.
具体地说,脚本通过利用应用程序或工具的规则和语法来表达指令,以控制应用程序(包括注册表程序)中各种元素的反应,也可以由简单的控制结构(例如循环语句和If/Then语句)组成,这些应用程序或工具包括网页浏览器(支持VBScript,Jscript),多媒体制作工具,应用程序的宏(比如Office的宏)以及我们熟悉的注册表工具(regedit.exe)等.操作系统中的批处理也可以归入脚本之列,批处理程序也经常由Windows环境中的"脚本"替换,所以又称脚本是"Windows时代的批处理".
脚本的作用在每一种应用程序中起的作用都是不一样的,比如在网页中可以实现各种动态效果,各种特效处理,实现各种HTML不能实现的功能.而在Office组件中,我们会经常看到"宏"这个工具,它其实就是一系列命令和指令可以实现任务执行的自动化.
脚本多以“vbs”、“bat”结尾。可以用“记事本”或“按键精灵”编辑。
java脚本怎么写的
1. java脚本里怎么写javascript
HTML中标签的id是唯一的,document.all返回的应该个数组,通过id去找标签,只能找到一个,就是最后一个id等于你所指的那个。
你看看我给你的是不是你想要的结果:
<script>
function show(isChecked,showName,num){
for(var n = 1; n <= num; n++){
document.getElementById(showName + n).style.display=isChecked ? 'block' : 'none';
}
}
</script>
<div>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><input name=checkbox2 type=checkbox onclick="show(this.checked,'jf',2)">aaa</td>
<td><input name=checkbox3 type=checkbox onclick="show(this.checked,'eth',2)">bbb</td>
<td><input name=checkbox5 type=checkbox onclick="show(this.checked,'grid',2)">ccc</td>
</tr>
</table>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td id="jf1" style="display:none">aaa</td>
<td id="eth1" style="display:none">bbb</td>
<td id="grid1" style="display:none">ccc</td></td>
</tr>
<tr>
<td id="jf2" style="display:none">aaa</td>
<td id="eth2" style="display:none">bbb</td>
<td id="grid2" style="display:none">ccc</td></td>
</tr>
</table>
</div>
2. Java脚本是什么意思
JAVA使用.支持.介绍.一、前言 『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和多 媒体(Multimedia)相关产品类方面。
Java为何有如此这么大的魅力?人作如此的比喻: Java在全球资讯网(World Wide Web, WWW)地位就如同电子表格(Spreadsheet)与个人计 算机(PC)的关系。那Java究竟有那些特色呢? Java是一种软件技术 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 是一种为 Internet发展的计算机语言 是一种使网页(Web Page)产生生动活泼画面的语言 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种语言,用以产生「小应用程序(Applet(s))」 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 是一种将安全性(Security)列为第一优先考虑的语言 是一种使用者不需花费很多时间学习的语言 是一种突破用户端机器环境和CPU结构的语言 是一种「写一次,即可在任何机器上执行(Write OnceRun Anywhere)」的语言是有史以来,第一套允 使用者将应用程序(Applications)通过Internet从远端的服务器(Remote Server)传输到本地端的机器 上(LocalMachine)并执行 是一种应用程序提供者不需要知道使用者的计算机硬件(如:Sun, Intel, 或MAC等)与软件(如:SW- UNIX, MAC O/S, Windows, 或NT等)环境的语言(Kestenbaum, 1995)。
下面将依序地介绍Java,首先是Java的发展历史与Java语言介绍,其次依序是Java Applet和HotJava的简单介绍。 二、Java FAQ 下面以问答的方式来说明Java的发展历史与其背景(下列内容整理自 Java FAQ list and Tutorial和The Java Language: A White Paper,读者若欲深 入了解,请自行参阅原文): Java何时开始发展?(When) 最早大概可追溯至1991年四月份,Sun的绿色计划(Green Project)开始着手于发展消费性电子产品(Consumer Electronics),所使用的语言是C、C++、及Oak (为Java语 言的前身),后因语言本身和市场的问题, 使得消费性电子产品的发展无法达到当初 预期的目标,再加上网络的兴起, 绿色计划也因此而改变发展的方向,这已是1994 年了。
为何称之为Java?(Why) "Java"是美国SUN计算机公司Java发展小组历经无数次的激烈讨论之后才被选择出。 生动(Liveliness)、动画(Animation)、速度(Speed)、交互性(Interactivity)为当 初选择名字时所欲表达出的特色。
"Java"是在无数的建议中脱颖而出的,而"Java" 不是由几个单字的首字所组成, 而是从许多程序设计师钟爱的热腾腾、香浓咖啡中 产生灵感的。 谁开发了Java?(Who) Java是美国SUN计算机公司Java发展小组开发的,早期的成员(绿色工程)是Patrick Naughton, James Gosling, & Mike Sheridan,而现在大家较为熟悉的成员是James Gosling。
在那里开发了Java?(Where) 也就是问Java的出生地?答案是美国。 如何可以找到所需的Java信息?(How to) 在网路上,您可以连到Sun公司的Java WWW网站,URL是/,或是 /。
在那里几乎可以找到您所需要的所有Java信息,但是语 言多少是一个障碍, 至少对某些人而言;没关系,目前国内已有很多个网站提供中文 Java信息。在清华和中科院的FTP站点上有不少有关资料。
想象以后应会有更多的站点提供相关信息。 如何才能看到Java的效果?(How Do I) 首先您需要有含有Java解释器的浏览器(Browser),例如:Netscpae公司的Netscape Navigator 2.0以上或是Sun公司的HotJava浏览器,对个人计算机使用者而言,操作 系统需是Windows 95或是Windows NT。
Java是因为撰写C++语言程序时的困难而研制开的,起先,只是一个消费性电子产品 大计划中的一部份,C++语言是当初被考虑采用的,但从一开始的编译问题一直到最 后的一连串问题迫使得放弃C++语言,而有Java语言的产生。Sun是要Java成为一个简 单(Simple)、面向对象的(Object Oriented)、分布式的(Distributed)、解释的(Interpreted)、健壮的(Robust)、安全的(Secure)、结构中立的(Architecture Neutral)、可移植的(Portable)、高效能的(High Performance)、多线程的(Multithreaded)、动态的(Dynamic)的程序语言(摘译自 TheJava Language: A White Paper, 1995)。
在Sun的Java语言白皮书中明白地说明上述Java语言的技巧。若以木工为比喻,一个面 向对象的木工,他(她)最主要的重点是即将要做的木椅子,其次才是所需要的工具; 反之;一个以非面向对象的木工,他(她)所关心的只是工具。
最近的即插即用(Plug and Play)亦是面向对象设计的重点。 分布式的(Distributed):Java有一个很周全的程薪录JAVA介绍 。
一、『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和 多媒体(Multimedia)相关产品类方面。Java为何有如此这么大的魅力?人作如此的比喻: Java在全球资讯网(World Wide Web, WWW)地位就如同电子表格(Spreadsheet)与个人计。
3. 什么是java脚本
Java脚本语言就是JavaScript
JavaScript,是一种基于对象的脚本语言。网景通讯公司最初在它的Navigator 2.0产品上设计并实现的,原名LiveScript。目前已经在WWW上广泛用于动态Web页面的编程语言。
Java脚本语言的目的是增加HTML的互动性
Java脚本语言是一种轻量级的编程语言,
Java脚本语言通常直接嵌入HTML页
Java脚本语言是一种解释性语言(脚本的执行无需翻译)
4. 脚本是用什么语言写的
那可多了,凡是说到脚本,基本上都可以用记事本编写,像vbscript,javascript,python,matlab,windows下的批处理,linux下的bash。当然就语言本身来说,任何语言都离不开文字编辑,关键在于能不能不用编译就能运行。
汇编语言需要解释器翻译成机器语言,java语言需要编译成class文件,所以说不上是脚本语言。
windows自带的notepad是不能够运行命令的。只有带来宏或者插件的记事本才能去执行一些脚本语言,比如比较有名的notepad++
是否可以解决您的问题?
5. 急求一java script脚本,最简单最简单那种
<body>
育才学习网