精华内容
下载资源
问答
  • * 示例:执行进程并返回结果 */ public class ProcessExecutor { http://www.kmrlyy.com/fkzl/33576.html public static final int SUCCESS = 0; // 表示程序执行成功 public static final String COMM
    1. import java.io.*;
    2. /**
    3. * 示例:执行进程并返回结果
    4. */
    5. public class ProcessExecutor {
    6. http://www.kmrlyy.com/fkzl/33576.html
    7. public static final int SUCCESS = 0; // 表示程序执行成功
    8. public static final String COMMAND = "java.exe -version"; // 要执行的语句
    9. public static final String SUCCESS_MESSAGE = "程序执行成功!";
    10. public static final String ERROR_MESSAGE = "程序执行出错:";
    11. public static void main(String[] args) throws Exception {
    12. // 执行程序
    13. Process process = Runtime.getRuntime().exec(COMMAND);
    14. // 打印程序输出
    15. readProcessOutput(process);
    16. // 等待程序执行结束并输出状态
    17. int exitCode = process.waitFor();
    18. http://www.kmrlyy.com/gongjingxirou/33577.html 
    19. if (exitCode == SUCCESS) {
    20. System.out.println(SUCCESS_MESSAGE);
    21. } else {
    22. System.err.println(ERROR_MESSAGE + exitCode);
    23. }
    24. }
    25. /**
    26. * 打印进程输出
    27. *
    28. * @param process 进程
    29. */http://www.kmrlyy.com/gongwaiyun/33578.html
    30. private static void readProcessOutput(final Process process) {
    31. // 将进程的正常输出在 System.out 中打印,进程的错误输出在 System.err 中打印
    32. read(process.getInputStream(), System.out);
    33. read(process.getErrorStream(), System.err);
    34. }
    35. // 读取输入流
    36. private static void read(InputStream inputStream, PrintStream out) {
    37. try {
    38. BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    39. http://www.kmrlyy.com/gongwaiyun/33579.html
    40. String line;
    41. while ((line = reader.readLine()) != null) {
    42. out.println(line);
    43. }www.kmrlyy.comtry {
    44. inputStream.close();
    45. } catch (IOException e) {
    46. e.printStackTrace();
    47. }
      http://www.kmrlyy.com/gongjingxirou/33580.html
    48. }
    49. }
    50. }
    1. http://www.kmrlyy.com/gongjingxirou/33580.html
    展开全文
  • Java 程序执行update返回结果

    万次阅读 2016-05-15 14:24:27
    Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。 方法executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。 被使用...

    Hibernate

    Hibernate中execute、executeQuery和executeupdate之间的区别
    Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

    方法executeQuery
    用于产生单个结果集的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法是 executeQuery。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。

    方法executeUpdate
    用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

    使用executeUpdate方法是因为在 createTableCoffees 中的 SQL 语句是 DDL (数据定义语言)语句。创建表,改变表,删除表都是 DDL 语句的例子,要用 executeUpdate 方法来执行。你也可以从它的名字里看出,方法 executeUpdate 也被用于执行更新表 SQL 语句。实际上,相对于创建表来说,executeUpdate 用于更新表的时间更多,因为表只需要创建一次,但经常被更新。

    可以看到executeUpdate 返回的是受影响的行数,那么更新失败就会返回0

    jdbctemplate

    同样道理,也是返回受影响的行数

    展开全文
  • import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class ShellForJava { //执行shell命令 public ...
    // 读取shell脚本或者命令
    	public static void runShell(String shellString) {
    		try {
    			Process process = Runtime.getRuntime().exec(shellString);
    			int exitValue = process.waitFor();
    			if (0 != exitValue) {
    				log.error("call shell failed. error code is :" + exitValue);
    			} else {
    				getShellResult(process);
    			}
    		} catch (Throwable e) {
    			System.out.println(e);
    			log.error("call shell failed. " + e);
    		}
    	}
    	//收集shell脚本运行的结果集
    	public static List<String> getShellResult(Process process) {
    		List<String> processList = new ArrayList<String>();
    		try {
    			BufferedReader input = new BufferedReader(new InputStreamReader(
    					process.getInputStream()));
    			String line = "";
    			while ((line = input.readLine()) != null) {
    				processList.add(line);
    			}
    			input.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    
    		for (String line : processList) {
    			System.out.println(line);
    		}
    		
    		return processList;
    	}
    	
    	public static void main(String[] args) {
    		runShell("/lw/shell/shell.txt");
    	}
    

    展开全文
  • 最近经常会用到java到指定机器上执行终端命令并且获得返回结果,所以借此机会来记录一下 1.首先通过ip,用户名,密码链接到远程服务器上,然后执行终端命令 userName:主机的用户名,password:密码,ipAddr:主机ip地址,...

    最近经常会用到java到指定机器上执行终端命令并且获得返回结果,所以借此机会来记录一下

    1.首先通过ip,用户名,密码链接到远程服务器上,然后执行终端命令

    userName:主机的用户名,password:密码,ipAddr:主机ip地址,cmd:你要执行的命令

        public String execute(String userName, String password, String ipAddr, String cmd) {
            String result = "";
            boolean isAuthed = false;
            try {
                if (InetAddress.getByName(ipAddr).isReachable(1500)) {
                    Connection conn = new Connection(ipAddr);
                    conn.connect();
                    isAuthed = conn.authenticateWithPassword(userName, password);
                    if (isAuthed) {
                        Session session = conn.openSession();//打开一个会话
                        session.execCommand(cmd);
                        result = processStdout(session.getStdout());
                        //如果为得到标准输出为空,说明脚本执行出错了
                        if (StringUtils.isBlank(result)) {
                            log.info("得到标准输出为空,链接conn:" + conn + ",执行的命令:" + cmd);
                            result = processStdout(session.getStderr());
                        } else {
                            log.info("执行命令成功,链接conn:" + conn + ",执行的命令:" + cmd);
                        }
    
                        session.close();
                        conn.close();
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return result;
        }

    2.获取终端命令的返回结果

        private static String processStdout(InputStream in) {
            InputStream stdout = new StreamGobbler(in);
            StringBuilder buffer = new StringBuilder();
            try {
                BufferedReader br = new BufferedReader(new InputStreamReader(stdout, StandardCharsets.UTF_8));
                String line;
                while ((line = br.readLine()) != null) {
                    buffer.append(line).append("\n");
                }
            } catch (IOException e) {
                log.error("解析脚本出错:" + e.getMessage());
            }
            return buffer.toString();
        }

    需要注意的是,如果想输入多条命令,命令之间可以用" && "连接,比如 "cd /home && ls"

    展开全文
  • Java执行Linux命令并返回命令结果

    万次阅读 2016-08-25 15:10:05
    但是这样执行时没有任何输出,因为调用 Runtime.exec 方法将产生一个本地的进程,并返回一个Process子类的实例 (注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例)该实例
  • Java调用cmd命令行并返回执行结果

    千次阅读 2017-02-18 09:58:36
    命令提示符是操作系统中,提示进行命令输入的一种工作提示...输入一些命令,cmd.exe可以执行,比如输入shutdown -s就会30秒后关机。总之,它非常有用。打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd.e
  • JAVA调用系统命令或可执行程序

    千次阅读 2016-05-26 15:16:41
    JAVA调用系统命令或可执行程序
  • 执行顺序的重点就finally中,具体如下: (1)、try:它里面放置可能引发异常的代码 (2)、catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块,可以有多个catch块。 (3)、...
  • 使用java传参调用exe并且获取程序进度和返回结果的一种方法 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 某个项目中需要考虑使用java...
  • 但是Runnable是一种有很大局限的抽象,run方法中只能记录日志,打印,或者把数据汇总入某个容器(一方面内存消耗大,另一方面需要控制同步,效率很大的限制),总之不能返回执行结果;比如同时1000个任务去网络上...
  • Java虚拟机-Java程序执行流程

    千次阅读 2018-01-13 00:51:04
    程序执行流程我把它划分为以下几个步骤:编辑源码、编译生成class文件、(加载class文件、运行class字节码文件),其中后两个步骤都是jvm虚拟机上执行的。
  • 在Java执行脚本命令以及调用外部程序说明 一、Java中关于ProcessBuilder 和 Runtime 类的介绍 在Java中要想调用脚本或者其他程序必须通过ProcessBuilder 和 Runtime 类,以上两个类任选一个就行,关于他们的介绍...
  • 我们来看一下ExecutorService中的执行方法:在上一篇中我们使用了execute方法启动线程池中的线程执行,这一篇我们来看看submit方法的使用:submit提交一个返回值的任务用于执行返回一个表示任务的未决结果的 ...
  • java动态执行代码或者第三方程序返回pid,杀掉进程 使用java动态执行Java代码或者调用第三方软件,如下代码即可 Process child = Runtime.getRuntime().exec(cmd); 只要写好cmd命令即可,如何同时返回进程的...
  • JVM原理详解-Java程序执行过程

    万次阅读 多人点赞 2016-05-23 13:30:25
    一、java虚拟机的生命周期:  Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序程序开始执行时他才运行,程序结束时他就停止。...在程序执行时,你必须给Java虚拟机指明这个包换main
  • public static void main(String[] args) { ... // 执行ping命令 Process process = Runtime.getRuntime().exec("cmd /c e:&dir"); BufferedReader br = new BufferedReader(new InputStreamReader(process
  •   package cn.com.songjy.test.shell; import java.io.BufferedReader;...import java.io.FileOutputStream;...import java.io.IOException;...import java.io.InputStreamReader;...import java.io.OutputStr...
  • java函数执行超时强制返回

    千次阅读 2014-03-05 18:44:40
    import java.lang.reflect.Method; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executor
  • Java串行程序并行化执行

    千次阅读 2016-01-09 22:01:57
    在程序开发过程当中,往往存在这样一种情况,程序首先执行完method1得到结果result1之后,在执行method2获得结果result2,然后再按照result1和result2的结果来判定程序下一步的执行这里method1和method2是相互不...
  • process这个类是一个抽象类,封装了一个进程(你调用linux的命令或者shell脚本就是为了执行一个linux下执行程序,所以应该使用process类)。  process类提供了执行从进程输入,执行输出到进程,等待进程完成...
  • 命令行执行java程序

    万次阅读 2010-09-15 10:51:00
    第一:简单的命令行(没有package)c:/temp/bin/GetGreeting.java public class GetGreeting { public static void main(String [] args) { System.out.println("Hello world"); } }1.编译:cmd--cd到c:/temp...
  • Java程序执行流程三

    千次阅读 2019-01-02 10:39:52
    简单说来,一个java程序的运行需要编辑源码、编译生成class文件、加载class文件、解释或编译运行class中的字节码指令。 下面有一段简单的java源码,通过它来看一下java程序的运行流程: 1 class Person 2 3...
  • Java Runtime 执行系统命令行程序

    千次阅读 2014-08-20 15:49:05
    以前写过一篇文章,介绍通过 Java 的 Runtime 类执行操作系统命令行程序Java... 说明一下这次的需求, Java 程序中控制 Hadoop 命令执行 MapReduce 作业,并获取其输出内容。本来没有什么特殊,但由于 MR 执行
  • Java调用命令行并获取执行结果

    千次阅读 2016-11-11 15:36:56
    我们使用javav做开发的时候,往往会用到命令行,而java又可以直接调用系统中的命令行,下面是一个案例,打开系统自带的记事本文件:import java.io.BufferedReader; import java.io.InputStreamReader; public ...
  • java程序执行Linux命令

    千次阅读 2015-10-08 09:24:59
    Process类是一个抽象类,封装了一个进程(即一个执行程序); Process类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁进程的方法。 ProcessBuilder.start()和Runtime.exec方法...
  • 一次线上Case,一条联合查询语句,直接sql server查询分析器执行,1秒以内,通过java程序执行很慢要7秒返回结果 贴出sql 语句 select temp.id, temp.userId, temp.operationUserId, temp.filename from ( ...
  • Java主线程等待所有子线程执行完毕在执行,这个需求其实我们工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个处理都可以用一个线程来执行,所有处理完成了之后才会返回给用户...
  • java 多线程 FutureTask

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 812,643
精华内容 325,057
关键字:

java先返回结果在执行程序

java 订阅