其实也很简单,就是在C#中构建一个Process,启动jar包,并且给jar包传递参数

因为我并没有怎么学过JAVA,所以只写了个很小的Demo,就是根据传入的参数获取对应的数据

以下是JAVA Demo

  1. package com.movie;
  2.  
  3. import static java.lang.System.*;
  4.  
  5. /**
  6. * Created by rZH on 2018/11/21
  7. */
  8. public class MovieInfo {
  9. public static void main(String[] args){
  10. //如果当前无请求参数
  11. if ( args.length<=0){
  12. //则程序终止
  13. return;
  14. }
  15.  
  16. //构建数据对象
  17. DataClass dc=new DataClass();
  18. //获取传进来的第一个参数
  19. String arg=args[0];
  20. //使用数据对象根据参数来得到对应的数据
  21. String str= dc.GetMovieListJson(arg);
  22. //打印数据
  23. out.println(str);
  24. }
  25. }

  

  1. package com.movie;
  2.  
  3. /**
  4. * Created by rZH on 2018/11/21
  5. */
  6. public class Movie {
  7. public Movie(String name,String beginTime,String room,String date,String version,String language){
  8. this.Name=name;
  9. this.BeginTime=beginTime;
  10. this.Data=date;
  11. this.Room=room;
  12. this.Version=version;
  13. this.Language=language;
  14. }
  15. public String Name;
  16. public String BeginTime;
  17. public String Room;
  18. public String Data;
  19. public String Version;
  20. public String Language;
  21. }
  1. package com.movie;
  2.  
  3. import com.alibaba.fastjson.JSON;
  4.  
  5. import java.util.ArrayList;
  6. import java.util.List;
  7.  
  8. /**
  9. * Created by rZH on 2018/11/21
  10. */
  11. public class DataClass {
  12. public String GetMovieListJson(String date){
  13. List<Movie> list=new ArrayList<Movie>();
  14. list.add(new Movie("M1","13:00","1号厅","20181120","2D","国语"));
  15. list.add(new Movie("M1","13:20","2号厅","20181120","2D","国语"));
  16. list.add(new Movie("M2","13:40","3号厅","20181120","3D","国语"));
  17. list.add(new Movie("M1","14:00","4号厅","20181120","2D","英语"));
  18. list.add(new Movie("M1","15:00","5号厅","20181120","2D","国语"));
  19. list.add(new Movie("M3","14:30","2号厅","20181120","2D","国语"));
  20. list.add(new Movie("M1","15:20","3号厅","20181130","3D","国语"));
  21. list.add(new Movie("M1","14:40","4号厅","20181120","2D","国语"));
  22. list.add(new Movie("M1","16:00","5号厅","20181122","2D","原话"));
  23. list.add(new Movie("M2","16:20","1号厅","20181120","3D","国语"));
  24. list.add(new Movie("M1","16:35","2号厅","20181122","2D","国语"));
  25. list.add(new Movie("M1","17:00","4号厅","20181120","2D","国语"));
  26. list.add(new Movie("M2","17:20","3号厅","20181120","3D","国语"));
  27. list.add(new Movie("M1","17:45","5号厅","20181120","2D","粤语"));
  28. list.add(new Movie("M4","18:00","2号厅","20181120","2D","国语"));
  29.  
  30. List<Movie> ml=new ArrayList<Movie>();
  31. for(int i=0;i<list.size();i++){
  32. if (list.get(i).Data.equals(date)){
  33. ml.add(list.get(i));
  34. }
  35. }
  36.  
  37. String str = JSON.toJSONString(ml);
  38. return str;
  39. }
  40. }

额,原谅我真不会写JAVA,就这些代码我还是在网上东查西查才查出来的,也原谅我用C#的风格去写吧

接着就是C#里面的,这个方法是在网上找的,某个博主写的,网页关了我找不着本人了

我的一些配置是写在app.config文件里的

以下是该文件的内容

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <startup>
  4. <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  5. </startup>
  6. <appSettings>
  7. <!--cmd需要启动的程序路径-->
  8. <add key="startPath" value="cmd.exe"/>
  9. <!--cmd程序启动的程序命令-->
  10. <add key="args" value="java -jar F:\JavaMovieDemo\out\artifacts\JavaMovieDemo_jar\JavaMovieDemo.jar"/>
  11. </appSettings>
  12. </configuration>

  

  1. static void Main (string[] args)
  2. {
  3. //运行程序
  4. string result= RunCmdAndGet (ConfigurationManager.AppSettings["args"]+ " 20181120");
  5. Console.WriteLine ("从java包得到的数据是:\r\n");
  6. Console.WriteLine (result);
  7. Console.ReadKey ();
  8. }
  9.  
  10. /// <summary>
  11. /// 启动CMD并且获取到数据
  12. /// </summary>
  13. /// <param name="query"></param>
  14. public static string RunCmdAndGet (string query)
  15. {
  16. Process CmdProcess = new Process ();
  17. CmdProcess.StartInfo.FileName = ConfigurationManager.AppSettings["startPath"];
  18.  
  19. CmdProcess.StartInfo.CreateNoWindow = true; // 不创建新窗口
  20. CmdProcess.StartInfo.UseShellExecute = false; //不启用shell启动进程
  21. CmdProcess.StartInfo.RedirectStandardInput = true; // 重定向输入
  22. CmdProcess.StartInfo.RedirectStandardOutput = true; // 重定向标准输出
  23. CmdProcess.StartInfo.RedirectStandardError = true; // 重定向错误输出
  24.  
  25. CmdProcess.StartInfo.Arguments = "/c " + query;//“/C”表示执行完命令后马上退出
  26. CmdProcess.Start ();//执行
  27.  
  28. string result= CmdProcess.StandardOutput.ReadToEnd ();//获取返回值
  29.  
  30. CmdProcess.WaitForExit ();//等待程序执行完退出进程
  31.  
  32. CmdProcess.Close ();//结束
  33. return result;
  34. }

  

以下图片就是结果

使用C#利用cmd来调用java jar包获取其中的数据的更多相关文章

  1. Jmeter调用JAVA jar包传参

    http://blog.csdn.net/xiazdong/article/details/7873767#

  2. 解析android framework下利用app_process来调用java写的命令及示例

    解析android framework下利用app_process来调用java写的命令及示例 在android SDK的framework/base/cmds目录下了,有不少目录,这些目的最终都是b ...

  3. loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试

    调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...

  4. java打jar包 命令行cmd在当前路径打jar包

    不尝试就永远不会知道真相. 今天搞webservice,需要将服务单独拉出来发布.打jar包的时候要打成aar包,所以用到cmd下的打jar包的命令. 当前路径打jar包,一定要先进到这个文件夹,然后 ...

  5. Jmeter调用自定义jar包

    一. 场景 在测试过程中, 可能需要调用第三方jar包来生成测试数据或者使用java工具类来实现业务场景, 普遍的做法是手动调用jar包, 再把这些值赋给jmeter中的某个参数, 以满足业务测试需求 ...

  6. java jar包运行方法

    http://java-beginner-liyun.iteye.com/blog/736752一.怎么打jar包 第一步:选中要打jar包的工程 第二步:鼠标右击,选择Export... 第三步:选 ...

  7. java jar包解析:打包文件,引入文件

    java jar包解析:打包文件,引入文件 cmd下: jar命令:package包打包 javac命令:普通类文件打包 Hello.java: package org.lxh.demo; publi ...

  8. 利用命令行引用外部jar包以使程序正常执行的4种方法

    声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/30976069 平时写一些小的Java Demo ...

  9. 利用Maven把项目生成jar包供其他项目使用

    每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...

随机推荐

  1. KEUC首次落地中国,网易云深度剖析Kubernetes优化与实践

    本文由  网易云发布. 10 月 15 日,聚焦 Kubernetes 中国行业应用与技术落地的首届中国 Kubernetes 用户大会(KEUC)在杭州成功举办.本次大会吸引了来自全球各地的技术精英 ...

  2. Day 34 面试题

  3. php中strpos()函数

    1,strpos()函数 mixed strops(]) 返回needle在haystack中首次出现的数字位置,从0开始查找,区分大小写. 参数:haystack,在该字符串中进行查找. needl ...

  4. Kafka Java 客户端开发

    依赖包导入 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.1 ...

  5. nodejs实现请求代理

    通常我们常用的请求方法只有GET.POST.PUT和DELETE,所以在此只介绍这四种和文件上传的代理方式 在此我们使用request.js第三方模块实现 GET(DELETE同GET,将reques ...

  6. Canvas+Js制作动量守恒的小球碰撞

    目的:通过js实现小球碰撞并实现动量守恒 canvas我们就不多说了,有用着呢. 我们可以通过canvas画2D图形(圆.方块.三角形等等)3D图形(球体.正方体等待). 当然这只是基础的皮毛而已,c ...

  7. 添加或删除 HTML dom元素

    添加或删除 HTML dom元素 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素. <div id=" ...

  8. (转)MySQL慢查询日志总结

    慢查询日志概念 原文:http://www.cnblogs.com/kerrycode/p/5593204.html MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应 ...

  9. jboss5+EJB3+MDB Queue

    在使用jboss5进行MDB的试验时首先要在jboss5中配置jms 队列. 1)在jboss安装目录下:server\default\deploy\messaging 打开destinations- ...

  10. MySQl中的\g和\G

    1. \g 在MySQL的sql语句后加上\g,效果等同于加上定界符,一般默认的定界符是分号; 2. \G 在MySQL的sql语句后加上\G,表示将查询结果进行按列打印,可以使每个字段打印到单独的行 ...