java process(JAVA,ProcessMouceEvent()与ProcessMouceMotionEvent()
本文目录
- JAVA,ProcessMouceEvent()与ProcessMouceMotionEvent(
- java 怎么取外部程序运行后的返回值
- java 获取process返回值的指定部分
- java 怎么调用windows外部命令
- java中的processWindowEvent()方法是什么意思
- Java Process.waitFor()这个方法是做什么用的是不是去等待这个进程结束的意思
- 使用java Process执行命令报:find: 路径必须在表达式之前: | 错误
- java中的Process
- java process如何一次性执行多个dos命令
JAVA,ProcessMouceEvent()与ProcessMouceMotionEvent(
processEvent 可以理解为是所有事件处理的中枢(事件分配者),重载它的时候要相对小心;如果你不调用super.processEvent(e);的话,是可以完全取代原有事件处理的,这种情况下可能导致其它依赖于listener模式的组件出现问题。而mouseListener则仅仅是鼠标事件的监听器,相当于注册了一个函数,等待processEvent来调用。所以,一般来说不推荐直接重写processEvent()。附上JDK的源码,你看看应该能理解两者关系:Java code? protected void processEvent(AWTEvent e) { if (e instanceof FocusEvent) { processFocusEvent((FocusEvent)e); } else if (e instanceof MouseEvent) { switch(e.getID()) { case MouseEvent.MOUSE_PRESSED: case MouseEvent.MOUSE_RELEASED: case MouseEvent.MOUSE_CLICKED: case MouseEvent.MOUSE_ENTERED: case MouseEvent.MOUSE_EXITED: processMouseEvent((MouseEvent)e); break; case MouseEvent.MOUSE_MOVED: case MouseEvent.MOUSE_DRAGGED: processMouseMotionEvent((MouseEvent)e); break; case MouseEvent.MOUSE_WHEEL: processMouseWheelEvent((MouseWheelEvent)e); break; } } else if (e instanceof KeyEvent) { processKeyEvent((KeyEvent)e); } else if (e instanceof ComponentEvent) { processComponentEvent((ComponentEvent)e); } else if (e instanceof InputMethodEvent) { processInputMethodEvent((InputMethodEvent)e); } else if (e instanceof HierarchyEvent) { switch (e.getID()) { case HierarchyEvent.HIERARCHY_CHANGED: processHierarchyEvent((HierarchyEvent)e); break; case HierarchyEvent.ANCESTOR_MOVED: case HierarchyEvent.ANCESTOR_RESIZED: processHierarchyBoundsEvent((HierarchyEvent)e); break; } } }
java 怎么取外部程序运行后的返回值
JAVA 中 process 类的使用 Process是一个抽象类 封装了一个进程创建 processProcess p = Runtime.getRuntime().exec(cmd); cmd 是字符串类型 也可以是字符串类型的数组 内容就是 命令行Process p =ProcessBuilder.start();Process 类提供了子进程的输入流,子进程的输出流子进程的输入流,等待进程完成,检查进程的退出状态以及销毁进程的方法;创建的子进程没有自己的控制台或终端,其所有的io操作都是通过(输入流、输出流、错误流)重定向到父进程中。destroy()杀掉子进程。exitValue()返回子进程的出口值。InputStream getErrorStream()获得子进程的错误流。InputStream getInputStream()获得子进程的输入流。OutputStream getOutputStream()获得子进程的输出流。waitFor()导致当前线程等待,如果必要,一直要等到由该 Process 对象表示的进程已经终止。-------分割线,以上来自网络-------其中的exitValue()函数返回值就是你需要的东西。按照你的示例,return 12345,取得的值不一定等于12345,因为每个不同的shell对于程序退出的返回值是有自己的定义的,不一定是把程序return的值直接返回。可以查看各类shell的编程帮助。
java 获取process返回值的指定部分
请参考java APIpublic BufferedInputStream(InputStream in, int size)创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。创建一个长度为 size 的内部缓冲区数组并将其存储在 buf 中。 参数:in - 底层输入流。size - 缓冲区大小。 抛出: IllegalArgumentException - 如果 size 《= 0
java 怎么调用windows外部命令
可以使用Java Process类,下面是一些例子:
Process类是一个抽象类,方法都是抽象的,它封装了一个进程,也就是一个可执行的程序 该类提供进程的输入、执行输出到进程、等待进程的完成和检查进程的退出状态及销毁进程的方法 ProcessBuilder.start()和Runtime.exec方法创建一个本机进程并返回Process子类的一个实例,该实例可以控制进程并获取相关的信息 其它的概要请参考JDK文档 下面就开始举几个简单的示例: (1)执行简单的DOS命令,如打开一个记事本 Java代码 package com.iwtxokhtd.other; import java.io.IOException; public class ProcessTest { public static void main(String args) { try { Process proc=Runtime.getRuntime().exec("notepad"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } view plain copy package com.iwtxokhtd.other; import java.io.IOException; public class ProcessTest { public static void main(String args) { try { Process proc=Runtime.getRuntime().exec("notepad"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } (2)使用它的其它构造方法执行相关的命令,如下例: Java代码 package com.iwtxokhtd.other; import java.io.IOException; public class ProcessTest { public static void main(String args) { try { String exeFullPathName="C:/Program Files/Internet Explorer/IEXPLORE.EXE"; String message="www.google.com"; String cmd={exeFullPathName,message}; Process proc=Runtime.getRuntime().exec(cmd); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } view plain copy package com.iwtxokhtd.other; import java.io.IOException; public class ProcessTest { public static void main(String args) { try { String exeFullPathName="C:/Program Files/Internet Explorer/IEXPLORE.EXE"; String message="www.google.com"; String cmd={exeFullPathName,message}; Process proc=Runtime.getRuntime().exec(cmd); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 执行上述命令可以打开Google网站(3)列出系统正在运行的所有进程信息 Java代码 package com.iwtxokhtd.other; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ListAllProcessTest { //列出所有的进程信息 public static void main(String args) { BufferedReader br=null; try { Process proc=Runtime.getRuntime().exec("tasklist"); br=new BufferedReader(new InputStreamReader(proc.getInputStream())); @SuppressWarnings("unused") String line=null; System.out.println("打印所有正在运行的进程信息"); while((line=br.readLine())!=null){ System.out.println(br.readLine()); } } catch (IOException e) { e.printStackTrace(); }finally{ if(br!=null){ try { br.close(); } catch (Exception e) { e.printStackTrace(); } } } } } view plain copy package com.iwtxokhtd.other; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ListAllProcessTest { //列出所有的进程信息 public static void main(String args) { BufferedReader br=null; try { Process proc=Runtime.getRuntime().exec("tasklist"); br=new BufferedReader(new InputStreamReader(proc.getInputStream())); @SuppressWarnings("unused") String line=null; System.out.println("打印所有正在运行的进程信息"); while((line=br.readLine())!=null){ System.out.println(br.readLine()); } } catch (IOException e) { e.printStackTrace(); }finally{ if(br!=null){ try { br.close(); } catch (Exception e) { e.printStackTrace(); } } } } } (4)判断一个具体的进程是否正在运行,如下例:Java代码 package com.iwtxokhtd.other; import java.io.BufferedReader; import java.io.InputStreamReader; public class FindProcessExeTest { public static void main(String args){ if(findProcess("QQ.exe")){ System.out.println("------判断指定的进程是否在运行------"); System.out.println("QQ.exe该进程正在运行!"); }else{ System.out.println("------判断指定的进程是否在运行------"); System.out.println("QQ.exe该进程没有在运行!"); } } public static boolean findProcess(String processName){ BufferedReader br=null; try{ //下面这句是列出含有processName的进程图像名 Process proc=Runtime.getRuntime().exec("tasklist /FI /"IMAGENAME eq "+processName+"/""); br=new BufferedReader(new InputStreamReader(proc.getInputStream())); String line=null; while((line=br.readLine())!=null){ //判断指定的进程是否在运行 if(line.contains(processName)){ return true; } } return false; }catch(Exception e){ e.printStackTrace(); return false; }finally{ if(br!=null){ try{ br.close(); }catch(Exception ex){ } } } } } view plain copy package com.iwtxokhtd.other; import java.io.BufferedReader; import java.io.InputStreamReader; public class FindProcessExeTest { public static void main(String args){ if(findProcess("QQ.exe")){ System.out.println("------判断指定的进程是否在运行------"); System.out.println("QQ.exe该进程正在运行!"); }else{ System.out.println("------判断指定的进程是否在运行------"); System.out.println("QQ.exe该进程没有在运行!"); } } public static boolean findProcess(String processName){ BufferedReader br=null; try{ //下面这句是列出含有processName的进程图像名 Process proc=Runtime.getRuntime().exec("tasklist /FI /"IMAGENAME eq "+processName+"/""); br=new BufferedReader(new InputStreamReader(proc.getInputStream())); String line=null; while((line=br.readLine())!=null){ //判断指定的进程是否在运行 if(line.contains(processName)){ return true; } } return false; }catch(Exception e){ e.printStackTrace(); return false; }finally{ if(br!=null){ try{ br.close(); }catch(Exception ex){ } } } } } 其它的用法可以参考JDK文档,这里就不一一举例,毕竟它用得不多。
java中的processWindowEvent()方法是什么意思
protected void processWindowFocusEvent(WindowEvent e)处理此窗口上发生的窗口焦点事件:将它们指派到任何注册的 WindowFocusListener 对象。注:只有为此组件启用了窗口事件时,此方法才有可能被调用。这在存在以下条件之一时发生: 通过 addWindowFocusListener 注册 WindowFocusListener 通过 enableEvents(AWTEvent.WINDOW_EVENT_MASK) 启用窗口焦点事件 注意,如果此事件参数为 null,则此行为是不明确的,可能导致异常。
Java Process.waitFor()这个方法是做什么用的是不是去等待这个进程结束的意思
java.lang.Process.waitFor()方法将导致当前的线程等待,如果必要的话,直到由该Process对象表示的进程已经终止。此方法将立即返回,如果子进程已经终止。如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出。public class ProcessDemo { public static void main(String args) { try { // create a new process System.out.println("Creating Process..."); Process p = Runtime.getRuntime().exec("notepad.exe"); // cause this process to stop until process p is terminated p.waitFor(); // when you manually close notepad.exe program will continue here System.out.println("Waiting over."); } catch (Exception ex) { ex.printStackTrace(); } }}Reference:***隐藏网址***
使用java Process执行命令报:find: 路径必须在表达式之前: | 错误
支持正则表达式,如果认为多次敲命令麻烦,可以考虑写一写脚本。这样每次执行这个脚本就可以了。还有如果要查询一个文件或者一个文件里的数据。你可以从拥有该文件的根目录查起,因为find命令可以递归查询多个子目录。 另外找到一个方法 find -regex ’name’ 此处的name是包含全路径的,但是此处的正则表达式语法有点不一样。
java中的Process
Runtime.exec("notepad") 返回的Process实例是基于Process子类,这点无需质疑。任何成功实例化的对象所属的类都是非抽象的实现类,抽象的方法已被实现。如果想查找其真实子类,可通过:System.out.println( Process实例引用.getClass().getName() ); // 详细可参考JAVA反射机制或着 查源码/Debug 跟踪 Runtime.exec 方法的执行过程。以上是我告诉你是些常用的技巧,这里根据我看到的源码说说:Runtime.exec 实际上调用了 java.lang.ProcessBuilder 的实现,不懂的可查 API 文档;而ProcessBuilder 内部调用 java.lang.ProcessImpl.start(...) 静态方法 返回1个 ProcessImpl实例;ProcessImpl类 正好是 Process类 的子类。
java process如何一次性执行多个dos命令
Java process是不可能一次性执行多条dos命令的,因为一次只能执行一条,人眼感觉是一下子可以执行多条。
更多文章:
直流开关电源(给开关电源一个直流电,开关电源还能稳定工作吗)
2024年7月19日 04:36
timeout官网(手机登录某个网站总是出现504gateway timeout)
2024年10月19日 07:45
html5选择器(“html5”的CSS3选择器中“:first-child”和“:last-child”是什么)
2024年6月30日 05:30
尚学堂现在有大数据就业班课程吗?尚学堂Java培训线上和线下课程有什么区别么
2024年6月25日 15:28
zblog源码下载((有关zblog) asp源码的问题,如何将以下源码写入c_custom.asp而不错)
2024年7月24日 01:14
vuechange事件(Vue element Switch @change事件死循环解决方式)
2024年7月11日 13:54
resource hacker中文版(resource hacker怎么汉化)
2024年3月23日 17:50
bootstrap方法的应用(统计学中bootstrap的具体含义,中文名字,用法举例)
2024年7月10日 08:03
transcript什么意思(transcript 是什么意思)
2024年7月13日 11:25
哈希宝app苹果版怎么下载?三星颗粒1660s挖eth参数设置
2024年7月2日 20:19
scala case(Scala 中的case关键字在这里是什么意思)
2024年7月22日 16:57
checkers是什么意思(checkers是什么意思及反义词)
2024年6月26日 05:27