当前位置: 首页 > news >正文

网站改版 数据迁移天眼查企业查询入口

网站改版 数据迁移,天眼查企业查询入口,个人网站平台搭建,哪个网站做视频有收益本文曾发表于天极网#xff1a;http://dev.yesky.com/284/2659284.shtml一般我们在java中运行其它类中的方法时#xff0c;无论是静态调用#xff0c;还是动态调用#xff0c;都是在当前的进程中执行的#xff0c;也就是说#xff0c;只有一个java虚拟机实例在运行。而有…本文曾发表于天极网http://dev.yesky.com/284/2659284.shtml    一般我们在java中运行其它类中的方法时无论是静态调用还是动态调用都是在当前的进程中执行的也就是说只有一个java虚拟机实例在运行。而有的时候我们需要通过java代码启动多个java子进程。这样做虽然占用了一些系统资源但会使程序更加稳定因为新启动的程序是在不同的虚拟机进程中运行的如果有一个进程发生异常并不影响其它的子进程。在Java中我们可以使用两种方法来实现这种要求。最简单的方法就是通过Runtime中的exec方法执行java classname。如果执行成功这个方法返回一个Process对象如果执行失败将抛出一个IOException错误。下面让我们来看一个简单的例子。// Test1.java文件import java.io.*;public class Test{public static void main(String[] args){FileOutputStream fOut  new FileOutputStream(c:\\Test1.txt);fOut.close();System.out.println(被调用成功!);}}// Test_Exec.javapublic class Test_Exec{public static void main(String[] args){Runtime run  Runtime.getRuntime();Process p  run.exec(java test1);}}通过java Test_Exec运行程序后发现在C盘多了个Test1.txt文件但在控制台中并未出现被调用成功的输出信息。因此可以断定Test已经被执行成功但因为某种原因Test的输出信息未在Test_Exec的控制台中输出。这个原因也很简单因为使用exec建立的是Test_Exec 的子进程这个子进程并没有自己的控制台因此它并不会输出任何信息。如果要输出子进程的输出信息可以通过Process中的getInputStream得到子进程的输出流在子进程中输出在父进程中就是输入然后将子进程中的输出流从父进程的控制台输出。具体的实现代码如下如示// Test_Exec_Out.javaimport java.io.*;public class Test_Exec_Out{public static void main(String[] args){Runtime run  Runtime.getRuntime();Process p  run.exec(java test1);BufferedInputStream in  new BufferedInputStream(p.getInputStream());BufferedReader br  new BufferedReader(new InputStreamReader(in));String s;while ((s  br.readLine()) ! null)System.out.println(s);}}从上面的代码可以看出在Test_Exec_Out.java中通过按行读取子进程的输出信息然后在Test_Exec_Out中按每行进行输出。上面讨论的是如何得到子进程的输出信息。那么除了输出信息还有输入信息。既然子进程没有自己的控制台那么输入信息也得由父进程提供。我们可以通过 Process的getOutputStream方法来为子进程提供输入信息即由父进程向子进程输入信息而不是由控制台输入信息。我们可以看看如下的代码// Test2.java文件import java.io.*;public class Test{public static void main(String[] args){BufferedReader br  new BufferedReader(new InputStreamReader(System.in));System.out.println(由父进程输入的信息  br.readLine());}}// Test_Exec_In.javaimport java.io.*;public class Test_Exec_In{public static void main(String[] args){Runtime run  Runtime.getRuntime();Process p  run.exec(java test2);BufferedWriter bw  new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));bw.write(向子进程输出信息);bw.flush();bw.close(); // 必须得关闭流否则无法向子进程中输入信息// System.in.read(); }}从以上代码可以看出Test1得到由Test_Exec_In发过来的信息并将其输出。当你不加bw.flash()和bw.close()时信息将无法到达子进程也就是说子进程进入阻塞状态但由于父进程已经退出了因此子进程也跟着退出了。如果要证明这一点可以在最后加上 System.in.read()然后通过任务管理器在windows下查看java进程你会发现如果加上bw.flush()和 bw.close()只有一个java进程存在如果去掉它们就有两个java进程存在。这是因为如果将信息传给Test2在得到信息后 Test2就退出了。在这里有一点需要说明一下exec的执行是异步的并不会因为执行的某个程序阻塞而停止执行下面的代码。因此可以在运行 test2后仍可以执行下面的代码。exec方法经过了多次的重载。上面使用的只是它的一种重载。它还可以将命令和参数分开如exec(java.test2)可以写成exec(java, test2)。exec还可以通过指定的环境变量运行不同配置的java虚拟机。除了使用Runtime的exec方法建立子进程外还可以通过ProcessBuilder建立子进程。ProcessBuilder的使用方法如下// Test_Exec_Out.javaimport java.io.*;public class Test_Exec_Out{public static void main(String[] args){ProcessBuilder pb  new ProcessBuilder(java, test1);Process p  pb.start();… …}}在建立子进程上ProcessBuilder和Runtime类似不同的ProcessBuilder使用start()方法启动子进程而Runtime使用exec方法启动子进程。得到Process后它们的操作就完全一样的。ProcessBuilder和Runtime一样也可设置可执行文件的环境信息、工作目录等。下面的例子描述了如何使用ProcessBuilder设置这些信息。ProcessBuilder pb  new ProcessBuilder(Command, arg2, arg2, );// 设置环境变量MapString, String env  pb.environment();env.put(key1, value1);env.remove(key2);env.put(key2, env.get(key1)  _test);pb.directory(..\abcd); // 设置工作目录Process p  pb.start(); // 建立子进程
http://www.zqtcl.cn/news/193045/

相关文章:

  • c 网站开发构想做网站的点子
  • 个人网站模板下载提供网站建设备案公司
  • 做网站需要会写代码6山东东营
  • 兼职刷客在哪个网站做网站搬家数据库配置
  • 做搬运的话哪个网站好网站模板建站
  • 建设个人信息网站wordpress 用户权限
  • 网站不显示域名解析错误怎么办公益网站设计
  • 怎么上传网站图片的链接手表网站排行榜
  • 网站推广方法100种百度排名规则
  • 上海专业网站建设公司站霸网络萝岗区网站建设推广
  • 做微商网站的公司永久免费crm管理系统
  • 网站开发的环境专业的建设网站
  • 公司网站建设知识注册网站备案
  • 营销型网站建设申请域名在域名做网站
  • 电商网站设计公司立找亿企邦山东德州网站建设哪家最好
  • 免费自建网站工具网站建设公司那个好
  • wordpress集成环境搭建短视频优化
  • 做网站一般把宽度做多少中国企业报集团官网
  • 什么软件可以建网站网站建设应该计入什么费用
  • 网站制作 手机版重庆网站建设mswzjs
  • 网站建设犀牛云品牌建设方案和思路
  • 网络管理系统的管理软件抖音优化推广
  • 昆山市有没有做网站设计的交互设计研究生
  • 本地网站asp iiswordpress 感染支付宝
  • 成都最专业做网站的wordpress升级500
  • 做网站首页图的规格网站建设的市场分析
  • a032网站模版自己建立网站怎么建
  • wordpress.商品厦门做网站优化价格
  • 学校网站建设源码视频生成链接网站
  • 江苏建设工程招投标网站wordpress 全部tags