bat文件调用java入门实例

合集下载

bat for 用法 -回复

bat for 用法 -回复

bat for 用法-回复[Bat使用方法]Bat是一种批处理文件,也称为批处理脚本或批处理程序。

它是一种由批处理命令组成的文本文件,用于自动执行一系列命令或操作。

Bat文件可以用于在Windows操作系统上执行各种任务,包括自动化任务、设置环境变量、配置系统设置等等。

本文将详细介绍Bat文件的使用方法,并提供一些常用技巧和示例。

第一步:创建一个Bat文件首先,打开任何文本编辑器,如记事本或Notepad++等。

现在,我们可以开始编写我们的第一个Bat文件。

在Bat文件的开头,可以使用“@echo off”命令来关闭命令提示符窗口的命令回显。

下面是一个简单的例子:@echo offecho Hello Worldpause在这个例子中,第一行“@echo off”用于关闭命令提示符窗口中的命令回显。

第二行“echo Hello World”用于输出Hello World文本。

第三行“pause”用于暂停执行,直到用户按下任意键。

第二步:保存Bat文件保存Bat文件非常简单。

只需要将文件另存为纯文本格式,并使用".bat"作为文件扩展名。

确保文件名不包含任何特殊字符或空格。

例如,将上述示例保存为"hello.bat",然后选择保存位置即可。

第三步:运行Bat文件完成Bat文件的编写和保存后,可以直接运行它。

只需双击该文件,系统将自动打开一个命令提示符窗口,并开始执行Bat文件中的命令。

同样,也可以通过命令行界面手动运行Bat文件。

打开命令提示符窗口,然后使用Bat文件的完整路径来执行它。

例如,如果Bat文件在C:\目录下的hello.bat中,可以通过输入“C:\hello.bat”来运行它。

第四步:Bat文件的基本命令和语法Bat文件支持许多命令和语法,用于实现各种功能。

以下是一些常用的命令和语法示例:1. 注释:在Bat文件中,可以使用“REM”命令来添加注释。

bat执行java程序的脚本解析

bat执行java程序的脚本解析

bat执⾏java程序的脚本解析使⽤java执⾏带Package的class⽂件java package1.package2.className或java -cp . package1.package2.className-cp将当前路径设置到classpath,windows默认情况下会搜索当前⽬录,有的机器有时候需要设置下-cp .,否则会找不到classbat:运⾏Java程序,脚本中的主要操作是设置classpath.脚本的功能:(1)设置path:可以找到java命令(2)设置splash(启动画⾯)(3)设置classpath:主程序运⾏时找到引⽤的class(4)设置远程调试需要的相关参数@echo offif "%OS%"=="Windows_NT" @setlocalif "%OS%"=="WINNT" @setlocal@title RRU Hotload Patch toolset workpath=%~dp0set path=%path%;%workpath%\libset JAVA_HOME=%workpath%\jdk-windowsrem set JAVA_OPTS=%JAVA_OPTS% -splash:%workpath%\img\welcome.gifset JAVA_OPTS=%JAVA_OPTS% -classpath %workpath%\lib\*;rem set JAVA_OPTS=-classic -Xdebug -Xnoagent piler=NONE -Xrunjdwp:transport=dt_socket,address=3999,server=y,suspend=n %JAVA_OPTS% %JAVA_HOME%\bin\java %JAVA_OPTS% PackageName.ClassNameAnalyze:1.@echo off(1).作为控制批处理命令在执⾏时是否显⽰命令⾏⾃⾝的开关格式:ECHO [ON|OFF](2).关闭DOS命令提⽰符在DOS提⽰符状态下键⼊ECHO OFF,能够关闭DOS提⽰符的显⽰使屏幕只留下光标,直⾄键⼊ECHO ON,提⽰符才会重新出现.2.%OS%是个系统变量3.setlocalsetlocal /?开始批处理⽂件中环境改动的本地化操作。

java调用bat

java调用bat
56. dxdiag---------检查DirectX信息
57. drwtsn32------ 系统医生
58. devmgmt.msc--- 设备管理器
59. dfrg.msc-------磁盘碎片整理程序
60. diskmgmt.msc---磁盘管理实用程序
61. dcomcnfg-------打开系统组件服务
cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。
可以用cmd /?查看帮助信息。
105. Clipbrd--------剪贴板查看器
106. conf-----------启动netmeeting
107. compmgmt.msc---计算机管理
108. cleanmgr-------垃圾整理
109. ciadv.msc------索引服务程序
110. osk------------打开屏幕键盘
23. regsvr32 /u *.dll----停止dll文件运行
24. drwtsn32------ 系统医生
25. rononce -p ----15秒关机
26. dxdiag---------检查DirectX信息
27. regedt32-------注册表编辑器
28. Msconfig.exe---系统配置实用程序
62. ddeshare-------打开DDE共享设置
63. dvdplay--------DVD播放器
64. net stop messenger-----停止信使服务

2023年最新:BAT大厂 java经典必考面试题

2023年最新:BAT大厂 java经典必考面试题

2023年最新《BAT Java必考面试题集》1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。

抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

2)继承:继承是从已有类得到继承信息创建新类的过程。

提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。

继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。

3)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。

面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。

我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。

可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。

4)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。

简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。

多态性分为编译时的多态性和运行时的多态性。

如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A 系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。

方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。

Java如何调用可执行文件和批处理命令

Java如何调用可执行文件和批处理命令

Java如何调用可执行文件和批处理命令●篇一Java 是种跨平台的语言,我们经常碰到需要通过Java调用windows下某些程序。

有些第三方厂商如(ANT),也提供了调用windows下可执行程序的方法,但我们往往需要调用一些批处理命令。

而java 却不提供。

这里,我采用一种变相的调用方法,使得Java 能调用批处理命令。

如果您有更好的方法,希望您能告诉我。

前期准备[/B]Quick Batch File (De)Compiler将任何BAT、CMD批处理脚本编译为EXE文件!开始1.运行exe 文件Java JDK里已经提供了调用的方法,不在累赘,代码如下。

try {String command = "notepad";Process child = Runtime.getRuntime().exec(command);} catch (IOException e) {}2.运行bat(批处理)文件Java 对批处理文件还不支持。

刚开始一直在研究Java 如何调用批处理文件,始终找不到解决方法。

后来只好绕过批处理,考虑如何将批处理转换为exe可执行文件。

然后再通过Java调用可执行文件。

在Google上搜索一下,找到Quick Batch File (De)Compiler,可以将任何BAT、CMD批处理脚本编译为EXE文件。

使用了一下,果然可以。

Quick Batch File (De)Compiler使用非常简单:Quickbfc 文件名.bat 文件名.exe(将批处理命令编译为可执行文件)quickbfd 文件名.exe 文件名.bat(将可执行文件反编译为批处理命令)然后,我们再按第一种方法通过Java 调用,即可。

●篇二由于java 是跨平台的,有时候我们需要用到操作系统的一些信息,为了方便期间,干脆就直接调用操作系统的命令来实现,比如查看IP地址,MAC地址等。

BAT脚本编写教程简单入门篇

BAT脚本编写教程简单入门篇

BAT脚本编写教程简单⼊门篇BAT脚本编写教程简单⼊门篇批处理⽂件最常⽤的⼏个命令:echo表⽰显⽰此命令后的字符echo on 表⽰在此语句后所有运⾏的命令都显⽰命令⾏本⾝echo off 表⽰在此语句后所有运⾏的命令都不显⽰命令⾏本⾝@与echo off相像,但它是加在每个命令⾏的最前⾯,表⽰运⾏时不显⽰这⼀⾏的命令⾏(只能影响当前⾏)。

call 调⽤另⼀个批处理⽂件(如果不⽤call⽽直接调⽤别的批处理⽂件,那么执⾏完那个批处理⽂件后将⽆法返回当前⽂件并执⾏当前⽂件的后续命令)。

pause 运⾏此句会暂停批处理的执⾏并在屏幕上显⽰Press any key to continue...的提⽰,等待⽤户按任意键后继续rem 表⽰此命令后的字符为注释,不执⾏。

title BAT的标题cls 清除屏幕开始例⼦:1. <span style="font-family:SimSun;font-size:14px;">@ECHO OFF2. TITLE BAT脚本例⼦13. echo -----------枚举C盘⽬录下所有⽂件-----------4. echo=5. echo=6. dir c:\*.*7. rem 输出到⽂本⽂件8. dir c:\*.* > example1.txt9. echo=10. echo=11. echo --------------------------------------------12. PAUSE</span>echo= 表⽰输出空⽩⾏,关于空⽩⾏的输出还有其他⽅式,具体可参考⽹址:若输⼊PAUSE>NUL 则表⽰暂停且不提⽰“按下任意键继续”。

设置字体颜⾊和窗体⼤⼩:设置字体颜⾊:COLOR 02 (0代表背景⾊,2代表前景⾊)常⽤的颜⾊有以下值:0 ⿊⾊,1蓝⾊,2 绿⾊,3 浅绿⾊,4红⾊,5紫⾊,6黄⾊,7⽩⾊,8灰⾊,9浅蓝,A浅绿,B浅蓝⾊,C浅红⾊,D浅紫⾊,E浅黄⾊,F亮⽩⾊)。

批处理入门

批处理入门
@rem %errorlevel% 扩展到 errorlevel 当前值的字符串表达式,如果没有名为 ERRORLEVEL 的环境变量,就可取代它的值。
@rem %cmdcmdline% 在任何 Cmd.exe 处理之前扩展传递到 Cmd.exe 的源命令行,如果没有名为 cmdcmdline 的环境变量,就可取代它的值。
一、关于当前路径: %cd% %~dp0,前者可用于批处理文件和命令行中,后者只用于批处理文件。
例:比如在D盘下有个批处理文件,a.bat,其内容为:
echo this is %%cd%% %cd%;
echo this is %%~dp0 %~dp0;
在c:\下运行a.bat后输出:
@rem 2) if [not] exist filename command [else expression]
if exist test.bat echo 当前目录下有test.bat
if not exist test.bat echo 当前目录下没有test.bat
if not exist test0 echo 没有test0这个目录
call test.bat
dir /w
@echo 5. start调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用
start test.bat
dir /w/p
@echo 6. for 在命令行中使用%variable,在bat文件中使用%%variable
@rem 显示当前目录下所有*.txt,*.bat的内容
@rem 用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令;

TN_ORA_0001_oracle存储过程调用java程序或外部bat文件

TN_ORA_0001_oracle存储过程调用java程序或外部bat文件

oracle存储过程调用java程序或外部bat文件by 胡珏1.调用bat文件1.1.创建java sourcecreate or replace and compile java source named exesyscommand as import java.io.*;publicclass ExeSysCommand{publicstatic String ExeCmd(String cmd) {Process proc=null;int exitValue;try {System.out.println(cmd);proc = Runtime.getRuntime().exec(cmd);exitValue = proc.waitFor();if (exitValue == 0) {return"PASS";} else {return"FAIL";}} catch (Exception e) {return e.getMessage();}}publicstaticvoid P_ExeCmd(String cmd) {Process proc = null;int exitValue;try {System.out.println(cmd);proc = Runtime.getRuntime().exec(cmd);exitValue = proc.waitFor();} catch (Exception e) {System.out.println(e.getMessage());}//proc.destroy();//proc=null;}publicstaticvoid main(String[] args)1.2.创建函数或存储引用该java source1.3.授权1.4.定义bat文件1.5.执行2.调用java程序2.1.创建java sourcecreate or replace and compile java source named httprequest asimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import .URL;import .URLConnection;import .URLEncoder;import java.util.List;import java.util.Map;publicclass HttpRequest {finalstatic String username = "cluster";finalstatic String password = "cluster";finalstatic String url_encode = "UTF-8";publicstaticvoid main(String[] args) {//发送 GET 请求Strings=HttpRequest.sendGet("http://192.168.117.2:8081/kettle/executeTrans/ ", "trans=D:/KETTLE/sms.ktr&content=22");System.out.println(s);//发送 POST 请求Stringsr=HttpRequest.sendPost("http://192.168.117.2:8081/kettle/executeTran s/", "trans=D:/KETTLE/sms.ktr&content=22");System.out.println(sr);}* 向指定URL发送GET方法的请求** @param url* 发送请求的URL* @param param* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。

PC机下实现java对文件系统功能调用共4页word资料

PC机下实现java对文件系统功能调用共4页word资料

PC机下实现java对文件系统功能调用使用JNI技术的最终目的就是为了能够在完成编写头文件和本地程序的基础上,再借助C/C++文件生成一个动态库文件,然后将其加载至Java 程序中,确保其成功运行。

具体步骤可以分为以下五步:第一,构建Java 工程,编写相应的Java代码。

在这一环节中,首要任务是将需要定义的动态库名称加载至Java类中,并且需要确定本地方法。

第二,编写并执行.bat文件,从而生成与Java代码相对应的头文件。

第三,编写本地代码,以保证Java可以与C/C++数据文件之间的相互转换。

第四,编译本地代码,从而生成DLL或者.SO文件。

第五,加载已生成的动态库文件至Java 代码之内,并将Java程序运行。

2SOA三层构架下FATFS文件系统的移植SOA即Service-Oriented Architecture,是面向服务的体系结构,它的出现解决了如何提高系统的扩展性的问题。

通过SOA的三层构架,有效的解决了诸多问题。

这可以从两个方面分析,即逻辑层的SOA三层构架以及实现层SOA三层构架。

2.1 逻辑层SOA三层构架逻辑层SOA三层构架的主要作用就是确保业务需求与系统的分离。

根据不同的应用方式,SOA可以实现不同语义层定义相应的应用协议语言。

这样就可以实现针对特定应用系统的系统需求映射,从而达到将业务需求与系统之间的衔接的目的。

逻辑层SOA三层构架是针对FATFS文件系统之间的底层驱动函数。

一般来说FATFS文件系统有六个接口函数与硬件层相对应,即磁盘初始化、获取当前磁盘的状态、写扇区、读扇区、获取当前时间以及存储介质控制函数。

2.2 实现层SOA三层构架这与逻辑层SOA三层构架相对应,引擎映射对应概念模型需求层;流程映射对应逻辑模型语义层;构建映射对应物理模型服务层。

因为论文内实现的PC机下Java对文件系统功能的调用是基于Java 调用C而实现的,那么逻辑层SOA三层构架内的服务层之中的底层函数是与实现层的构件池相对应的,而实现层的引擎则是Java,这样通过Java 引擎就可以在调用文件系统流程的过程中生成的动态库文件达到实现文件系统的目的。

注册Java环境变量脚本.bat文件

注册Java环境变量脚本.bat文件

@echo offrem 判断当前目录是否为JDK或JRE安装目录:BEGINset home=%~dp0IF EXIST "%home%/bin/java.exe" GOTO SETTINGrem 提示重新选择目录:MESSAGEecho "%home%"不是有效的JDK/JRE目录echo 请输入正确的JDK/JRE安装路径,或将本文件放在安装目录下重新执行set /p home=请输入安装路径:IF EXIST "%home%/bin/java.exe" GOTO SETTINGGO MESSAGErem 设置JDK/JRE的安装目录:SETTINGrem 根据是否包含javac.exe来判断是JDK还是JREIF EXIST "%home%/bin/javac.exe" (echo 您安装的是JDK,目录为:%home%) ELSE (echo 您安装的是JRE,目录为:%home%)wmic ENVIRONMENT create name="JAVA_HOME",username="<SYSTEM>",VariableValue="%home%"wmic ENVIRONMENT where "name='PATH' and username='<SYSTEM>'" set VariableValue="%PATH%;%%JAVA_HOME%%\bin"IF %ERRORLEVEL% == 0 (echo Java环境变量设置完毕!) ELSE (echo 设置系统环境变量失败!)pause。

Java执行CMD命令或执行BAT批处理方式

Java执行CMD命令或执行BAT批处理方式

Java执⾏CMD命令或执⾏BAT批处理⽅式Java 执⾏CMD命令或执⾏BAT批处理背景⽇常开发中总能遇到⼀些奇怪的需求,例如使⽤java执⾏cmd命令或者bat批处理⽂件,今天就简单记录⼀下使⽤过程。

使⽤废话不多说直接上代码import java.io.BufferedReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;public class Cmder {/*** 执⾏⼀个cmd命令** @param cmdCommand cmd命令* @return 命令执⾏结果字符串,如出现异常返回null*/public static String executeCmdCommand(String cmdCommand) {StringBuilder stringBuilder = new StringBuilder();Process process = null;try {process = Runtime.getRuntime().exec(cmdCommand);BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));String line = null;while ((line = bufferedReader.readLine()) != null) {stringBuilder.append(line).append(" ");}return stringBuilder.toString();} catch (Exception e) {e.printStackTrace();return null;}}/*** 执⾏bat⽂件,** @param file bat⽂件路径* @param isCloseWindow 执⾏完毕后是否关闭cmd窗⼝* @return bat⽂件输出log*/public static String executeBatFile(String file, boolean isCloseWindow) {String cmdCommand = null;if (isCloseWindow) {cmdCommand = "cmd.exe /c " + file;} else {cmdCommand = "cmd.exe /k " + file;}StringBuilder stringBuilder = new StringBuilder();Process process = null;try {process = Runtime.getRuntime().exec(cmdCommand);BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));String line = null;while ((line = bufferedReader.readLine()) != null) {stringBuilder.append(line).append(" ");}return stringBuilder.toString();} catch (Exception e) {e.printStackTrace();return null;}}/*** 执⾏bat⽂件,新开窗⼝* @param file bat⽂件路径* @param isCloseWindow 执⾏完毕后是否关闭cmd窗⼝* @return bat⽂件输出log*/public static String executeBatFileWithNewWindow(String file, boolean isCloseWindow) { String cmdCommand;if (isCloseWindow) {cmdCommand = "cmd.exe /c start" + file;} else {cmdCommand = "cmd.exe /k start" + file;}StringBuilder stringBuilder = new StringBuilder();Process process;try {process = Runtime.getRuntime().exec(cmdCommand);BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));String line;while ((line = bufferedReader.readLine()) != null) {stringBuilder.append(line).append(" ");}return stringBuilder.toString();} catch (Exception e) {e.printStackTrace();return null;}}/*** 执⾏bat脚本** @param batScript 脚本内容* @param location 脚本存储路径* @return 结果*/public static String executeBatScript(String batScript, String location) {StringBuilder stringBuilder = new StringBuilder();FileWriter fw = null;try {//⽣成bat⽂件fw = new FileWriter(location);fw.write(batScript);fw.close();} catch (IOException e) {e.printStackTrace();}Process process;try {process = Runtime.getRuntime().exec(location);BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));String line;while ((line = bufferedReader.readLine()) != null) {stringBuilder.append(line).append(" ");}return stringBuilder.toString();} catch (Exception e) {e.printStackTrace();return null;}}/*** 执⾏脚本,不停⽌,并输出执⾏结果** @param batScript 脚本内容* @param location bat⽂件⽣成地址*/public void executeBatScriptAlways(String batScript, String location) {FileWriter fw = null;try {//⽣成bat⽂件fw = new FileWriter(location);fw.write(batScript);fw.close();} catch (IOException e) {e.printStackTrace();StringBuilder stringBuilder = new StringBuilder();//运⾏bat⽂件Process process;try {process = Runtime.getRuntime().exec(location);BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));String line;while ((line = bufferedReader.readLine()) != null) {System.out.println(line);}} catch (Exception e) {e.printStackTrace();}}}Java 执⾏系统命令1. windows1.1 cmd第⼀种⽅法File dir = new File("D:\\mysql57\\mysql-5.7.29-winx64\\bin");// String command="netstat -an";String command = "c:\\windows\\system32\\cmd.exe /c mysqlbinlog ../data/master-bin.000006 | more"; Runtime r = Runtime.getRuntime();Process p = r.exec(command, null, dir);BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));StringBuffer sb = new StringBuffer();String inline;while (null != (inline = br.readLine())) {sb.append(inline).append("\n");}System.out.println(sb.toString());第⼆种⽅法try {File dir = new File("D:\\mysql57\\mysql-5.7.29-winx64\\bin");//此处是指定路径String[] cmd = new String[] { "cmd", "/c","mysqlbinlog -v ../data/master-bin.000006 | more"};// cmd[2]是要执⾏的dos命令System.out.println(cmd[2]);Process process = Runtime.getRuntime().exec(cmd,null,dir);// 记录dos命令的返回信息StringBuffer resStr = new StringBuffer();// 获取返回信息的流InputStream in = process.getInputStream();Reader reader = new InputStreamReader(in);BufferedReader bReader = new BufferedReader(reader);for (String res = ""; (res = bReader.readLine()) != null;) {resStr.append(res + "\n");}System.out.println(resStr.toString());bReader.close();reader.close();process.getOutputStream().close(); // 不要忘记了⼀定要关} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}windows cmd 命令后台运⾏start /b 程序名字start /b redis-server.exe redis.windows.conf关闭程序taskkill /f /t /im 程序名字taskkill /f /t /im redis-server.exe查看进程根据进程名称查看进程tasklist|find /i "redis-server.exe"以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

java调用process线程阻塞问题的解决

java调用process线程阻塞问题的解决

java调⽤process线程阻塞问题的解决java调⽤process线程阻塞问题项⽬需求中涉及java调⽤.bat⽂件进⾏图像处理,先直接上简略版程序public void draw(){//调⽤bat脚本进⾏图像处理Process process = null;InputStream in = null;try {process = Runtime.getRuntime().exec("startup.bat");//输出测试// in = process.getInputStream();// String line;// BufferedReader br = new BufferedReader(new InputStreamReader(in));// while ((line = br.readLine()) != null) {// System.out.println(line);// }//等待process.waitFor();} catch (Exception e) {} finally {process.destroy();}}JAVA使⽤遇到的问题描述⼀般需要调⽤系统命令时,⼤部分⼈第⼀反应肯定是使⽤Runtime.getRuntime().exec(command)返回⼀个process对象,再调⽤process.waitFor()来等待命令执⾏结束,获取执⾏结果。

调试的时候发现异常现象,process.waitFor();⼀直没有结束,导致线程阻塞再次,强⾏关闭程序后,发现图像处理只进⾏了⼀部分。

根据现象并查看了JDK的帮助⽂档,如下如有必要,⼀直要等到由该 Process 对象表⽰的进程已经终⽌。

如果已终⽌该⼦进程,此⽅法⽴即返回。

但是直接调⽤这个⽅法会导致当前线程阻塞,直到退出⼦进程。

对此JDK⽂档上还有如此解释:因为本地的系统对标准输⼊和输出所提供的缓冲池有效,所以错误的对标准输出快速的写⼊何从标准输⼊快速的读⼊都有可能造成⼦进程的阻塞,甚⾄死锁。

Java中如何执行多条shellbat命令

Java中如何执行多条shellbat命令

Java中如何执⾏多条shellbat命令java调⽤process执⾏命令public class ShellUtil {public static String runShell (String shStr) throws Exception {Process process;process = Runtime.getRuntime().exec( new String[]{ "/bin/sh" , "-c" ,shStr});process.waitFor();BufferedReader read = new BufferedReader( new InputStreamReader(process.getInputStream()));String line = null ;String result = "" ;while ((line = read.readLine())!= null ){result+=line;}return result;}}注意:如果是windows操作系统要改为Runtime.getRuntime().exec(new String[]{"**cmd** exe","-c","command"});1.当要执⾏多条时且不依赖事务,可以分开多次调⽤public class ExecuteShell {public static void main (String[] args){String command1 = "some command" ;String command2 = "some command" ;String message1 = ShellUtil.runShell(command1);String message2 = ShellUtil.runShell(command2);System. out .println(message1);System. out .println(message2);}}2.但是当命令之间有事务依赖时⽐如⼀条命令是登录数据库,第⼆条执⾏查询语句,上⾯分开多次调⽤的⽅式就不⾏。

BAT文件使用教程

BAT文件使用教程

bat批处理教程(1)这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识。

写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。

先概述一下批处理是个什么东东。

批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了;但我想总结出一个“比较合适的”,而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。

或许你会因为这篇文章而“无条件爱上批处理”,那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的!按照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。

OK,never claver and get to business(闲话少说言归正传)。

批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。

它的构成没有固定格式,只要遵守以下这条就ok 了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。

批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。

我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。

所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。

mybatis xml调用java实例方法

mybatis xml调用java实例方法

mybatis xml调用java实例方法MyBatis是一种流行的JavaORM框架。

在使用过程中,我们通常会将SQL语句定义在xml文件中,然后通过Java代码中的Mapper接口调用这些SQL语句。

但是,在某些情况下,我们可能需要在xml文件中调用Java实例方法。

要在MyBatis的xml文件中调用Java实例方法,我们需要做以下几个步骤:1. 定义一个Java类,并在其中定义一个public方法。

该方法应该返回一个可以在xml中使用的数据类型,如String、List等。

2. 在MyBatis的xml文件中定义一个parameterType为该Java 类的parameterMap。

例如:<parameterMap type='er' id='userMap'><parameter property='id' javaType='int'jdbcType='INTEGER'/></parameterMap>3. 在xml中调用Java实例方法。

例如:<select id='getUserById' resultMap='userResultMap' parameterMap='userMap'>SELECT * FROM user WHERE id = #{id}<choose><when test='@ng.Math@random() > 0.5'>AND active = true</when><otherwise>AND active = false</otherwise></choose></select>在上面的例子中,我们使用了@ng.Math@random()函数调用了Java实例方法random()。

BAT脚本编写教程入门提高篇

BAT脚本编写教程入门提高篇

BAT脚本编写教程⼊门提⾼篇BAT脚本编写教程⼊门提⾼篇批处理⽂件的参数批处理⽂件还可以像C语⾔的函数⼀样使⽤参数(相当于DOS命令的命令⾏参数),这需要⽤到⼀个参数表⽰符“%”。

%[1-9]表⽰参数,参数是指在运⾏批处理⽂件时在⽂件名后加的以空格(或者Tab)分隔的字符串。

变量可以从%0到%9,%0表⽰批处理命令本⾝,其它参数字符串⽤%1到%9顺序表⽰。

例⼦:ShowTwoFilesContent.bat[plain]1. <span style="font-size:18px;">@ECHO OFF2. TITLE BAT参数3. COLOR A4. echo -----------读取⽂件内容-----------5. echo=6. TYPE %17. echo=8. TYPE %29. echo=10. echo -----------------------------------11. PAUSE</span>在另⼀个BAT⽂件中调⽤[plain]1. <span style="font-size:18px;">@ECHO OFF2. TITLE BAT参数3. COLOR A4. echo -----------BAT参数-----------5. echo=6. CALL ShowTwoFilesContent.bat 1.txt 2.txt7. echo=8. echo -----------------------------------9. PAUSE10. </span>if goto choice for 命令1、if [not] "参数" == "字符串" 待执⾏的命令参数如果等于(not表⽰不等,下同)指定的字符串,则条件成⽴,运⾏命令,否则运⾏下⼀句。

使用bat(批处理文件)启动java程序

使用bat(批处理文件)启动java程序

使用bat(批处理文件)启动java程序操作步骤1、新建一个文件夹,将要执行java程序(可使用eclipse导出的可执行的jar包)拷贝到该文件夹中;2、将jdk中jre文件夹拷贝到要执行的java程序所在的文件夹;3、在java程序所在的文件夹中新建一个bat文件。

bat文件样例:样例一:@echo offset PATH=.;%CD%\SocketAdapter_lib\jre\binset CLASSPATH=.start java.exe -jar SocketAdapter.jar@pause样例二:@echo offstart SocketAdapter_lib\jre\bin\java -jar SocketAdapter.jar @pause注:可以在没有安装JRE的环境中,运行Java应用程序java.exe 具体使用参见cmd中输入java -helpjavaw.exe 相对于java.exe 执行java程序过程中MS-DOS不可见对于安装了JRE的环境中,第2步可以省略,bat文件如下样例三:@echo offjava -jar SocketAdapter.jar@pause相关信息:1、关于eclipse导出jar文件JAR文件和可运行的JAR文件唯一的区别在于META-INF文件夹中的MANIFEST.MF这个文件,MANIFEST.MF中会包含启动配置,依赖的jar文件信息。

2、使用工具(例如BatToExeConverter)将bat文件转换成exe 文件,就成了常常看到的绿色版软件了。

bat文件的书写参考bat命令大全。

Windows上通过bat调用jmx进行循环运行

Windows上通过bat调用jmx进行循环运行

Windows上通过bat调⽤jmx进⾏循环运⾏
1、jmx测试脚本中有两个线程组:
1)第⼀个线程组:模拟60台客户机并发像服务器发送上报请求,需要调⽤线程组的循环运⾏
2)第⼆个线程组:60台客户机上线后,模拟管理平台对客户机进⾏基础操作,如:创建客户机组、删除客户机组等操作
2、问题:如果让测试计划循环执⾏?因为要模拟60台并发,所以两个线程组的请求不能合并在⼀起
3、在不搭建jenkins持续集成的情况下,决定采⽤bat进⾏调⽤执⾏
cd "D:\Users\admin\Desktop\00\apache-jmeter-3.1\apache-jmeter-3.1\bin"
for /l %%i in (1,1,100) do (
jmeter -n -t c:\test-bug-lj.jmx -l c:\log-%%i.jtl)
第⼀⾏:进⼊jmeter的⽬录
第⼆⾏:循环
第三⾏:jmeter命令⾏执⾏并输出⽇志,这⾥log-%%i.jtl会每⼀次循环输出⼀次⽇志,不⽅便查看,若此处未进⾏参数化⽽是直接输⼊log.jtl,择最终输出的⽇志则是所有循环次数累计到⼀起的测试结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

bat文件调用java入门实例
本例主要是讲解简单的bat调用java执行数据库的查询和插入值
1,新建项目如下图
2,编写DBConnection.java代码
package oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
/**
* 方法�?
* 详述: 链接
* 开发人员:ldh
* 创建时间�?012-6-11
* @param args
*/
private static String url="jdbc:oracle:thin:@localhost:1521:orcl";
private static String user="scott";
private static String password="";
private static Connection connection=null;
public static Connection getConnection(){
try {
Class.forName("oracle.jdbc.OracleDriver");
connection=DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return connection;
}
}
3,编写TestJdbcs.java的代码
package oracle;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;
public class TestJdbcs {
/**
* 方法�?
* 详述:
* 开发人员:梁丹华
* 创建时间�?012-6-11
* @param args
*/
public static void main(String[] args) {
TestJdbcs tb=new TestJdbcs();
System.out.println("查询结果如下"+"");
tb.selectJdbc();
System.out.println("插入值如下:");
tb.insertJdbc();
}
public void selectJdbc(){
Connection conn = DBConnection.getConnection();
String sql="{call scott.check_user(?,?)}";
try {
CallableStatement cst = conn.prepareCall(sql);
//cst.setString(1, "hua");
cst.setString(1, "41");
cst.registerOutParameter(2, Types.VARCHAR);
cst.execute();
String tst = cst.getString(2);
System.out.println(tst);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void insertJdbc(){
Connection conn = DBConnection.getConnection();
String sql="{call INSERT_TABLE1(?,?)}";
try {
CallableStatement cst = conn.prepareCall(sql);
//cst.setString(1, "hua");
cst.setString(1, "zsts");
cst.setString(2, "通级7");
cst.execute();
System.out.println("通级6");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4,在项目中加入
5,建表TABLE1如图
6,编写存储过程,因为上面的测试类是调用存储过程操作数据库的只要建以下两个存储过程
6.把项目的代码打包成jar文件,因为bat文件调用的是jar文件打包如下操作
第一,选中项目右击,点击进入如图
7.选择带有主方法的类,点击ok
8.再右击选择项目的export如下图
点击next如下图
9.在e:/下建立一个bat 包把刚才打好的jar复杂进来如下图
10.编写bat文件如图
12.最后点击运行 bat就可以拉结果如下
13.。

相关文档
最新文档